"Could not load file or assembly System.Drawing or one of its dependencies" error on .Net 2.0, VS2010 and Windows 8

Я получаю исключение FileNotFoundException в проекте Windows Forms Application со следующим сообщением:

Could not load file or assembly 'System.Drawing, Version=4.0.0.0, 
Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a' или одну из его зависимостей. 
Система не может найти указанный файл.

Чтобы воспроизвести проблему:

  • Выберите New, Project, выберите .Net Framework 2.0 в качестве цели и выберите Windows Forms Application в качестве типа проекта.
  • В свойствах формы, созданной по умолчанию, выберите значение для свойства 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" />

Есть идеи?

16
задан Stecya 8 February 2012 в 09:53
поделиться