System.BadImageFormatException: как исправить несоответствие версии .NET? - PullRequest
9 голосов
/ 05 мая 2009

Я написал DLL в VS 2005, которая будет загружена другой программой, разработанной в VS 2003. Когда эта программа пытается загрузить мою DLL, она выдает System.BadImageFormatException: The format of the file 'Foo.dll' is invalid.

Я искал SO и Google, и, похоже, виновником является другая версия .NET. Мой вопрос: как мне это исправить?

(я не могу изменить программу, разработанную в VS 2003.)

Ответы [ 3 ]

17 голосов
/ 05 мая 2009

Я получил эту ошибку, когда запускал 64-битную версию CLR и пытался загрузить сборку, которая была помечена только как 32-битная. Конкретной сборкой в ​​моем случае была Oracle.DataAccess.dll, которая входит в состав ODP.NET.

14 голосов
/ 03 августа 2010

РЕШЕНИЕ: Если вы используете IIS7, щелкните правой кнопкой мыши / Дополнительные параметры в пуле определенных приложений на веб-сайте и выберите True при включении 32-разрядных приложений. Это должно работать.

7 голосов
/ 05 мая 2009

Скомпилируйте проект VS2005 с той же версией .Net, которую использует ваш проект VS2003. Или, в зависимости от размера вашего проекта VS2003, отражатель и переписать его. Это обычная практика для проектов здесь, где по какой-то непонятной причине больше нет версии VSS.

...