Я получаю FileNotFoundException в проекте приложения Windows Forms со следующим сообщением:
Could not load file or assembly 'System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a' or one of its dependencies. The system cannot find the file specified.
Чтобы воспроизвести проблему:
- Выберите "Создать", "Проект", выберите .Net Framework 2.0 в качестве цели и выберите "Приложение Windows Forms" в качестве типа проекта.
- В свойствах формы, созданной по умолчанию, выберите значение свойства Icon. Будет выполнен любой файл .ico. Это вложит файл в файл resx.
- Скомпилируйте и запустите приложение.
Когда я это делаю, программа останавливается в строке this.Icon = ((System.Drawing.Icon)(resources.GetObject("$this.Icon")));
со следующим исключением:
System.IO.FileNotFoundException was unhandled
Message=Could not load file or assembly 'System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a' or one of its dependencies. The system cannot find the file specified.
Source=mscorlib
FileName=System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a
Я получаю это на Visual Studio 2010 SP1, недавно установленном в Windows 8 Developer Preview. Если я изменю свойства проекта для таргетинга .Net Framework 4, ошибка исчезнет.
В файле Form1.resx я вижу, что версия сборки System.Drawing явно указана как 2.0:
<assembly alias="System.Drawing" name="System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
Любые идеи?