Ошибка «Не удается загрузить файл или сборку System.Drawing или одну из ее зависимостей» в .Net 2.0, VS2010 и Windows 8 - PullRequest
16 голосов
/ 08 февраля 2012

Я получаю исключение 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.

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

  • ВыберитеНовый, 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" />

Есть идеи?

Ответы [ 12 ]

0 голосов
/ 20 октября 2014

Я столкнулся с той же проблемой, и ни одно из приведенных выше предложений не помогло мне, поэтому я сделал следующее:

Открой свой проект
Перейти в обозреватель решений
Разверните Справочную группу
Удалить ссылку System.Drawing
Щелкните правой кнопкой мыши по справочной группе
Добавить ссылку
На вкладке «.NET» найдите System.Drawing, чтобы добавить нужную ссылку

0 голосов
/ 15 мая 2014

Недавно у меня появилось то же сообщение об ошибке, когда клиент попросил меня отказаться от приложения.

Используя Visual Studio 2010 Professional, я изменил целевой фреймворк с .NET Framework 4 на .NET Framework 3.5. Построение не удалось с указанным сообщением об ошибке. Решение состояло в том, чтобы удалить файл изображения, вызывающий проблему, из ресурсов приложения. Добавив его снова, версия System.Drawing была указана как 2.0.0.0, и сборка прошла успешно.

...