Не удалось загрузить файл или сборку "xxx" или одну из его зависимостей. Была сделана попытка загрузить программу с неправильным форматом

Я только что проверил ревизию из Subversion в новую папку. Открыл решение, и я получаю его при запуске:

Не удалось загрузить файл или сборку "xxxx" или одну из его зависимостей. Была сделана попытка загрузить программу с неправильным форматом.

Это тот же код, который я проверил некоторое время назад. Почему теперь он это делает? Теперь я также вижу Debug x86 вместо просто Debug в этой папке bin проекта xxx. Что такое Debug x86 и почему у меня нет отладки только так, как я привык в папке bin?

Ответ 1

Похоже, что одна часть проекта строится только для x86, а остальная часть создается для любого CPU/x64. Это тоже меня укусило. Вы используете x64 (или uh... IA64)?

Проверьте свойства проекта и убедитесь, что все построено для "Любой процессор". f вы находитесь в Visual Studio, вы можете проверить все, перейдя в меню "x86" или "Любой процессор" (рядом с меню "Отладка" / "Отпуск" ) на панели инструментов в верхней части экрана и нажав "Configuration Manager..."

Ответ 2

Если вы получите эту ошибку при запуске сайта в IIS 7+ на 64-битных серверах, у вас могут быть сборки, размер которых 32 бит, а в вашем пуле приложений будет опция "Включить 32-разрядные приложения", установленную в False; Установите для этого значение true и перезапустите сайт, чтобы заставить его работать.

Ответ 3

У меня была эта ошибка при попытке использовать ужасный Business Objects 4 для .Net SDK.

Они отправляют пять файлов BusinessObjects *.dll, но все они 64-разрядные.

Чтобы загрузить мою веб-страницу, мне нужно было нажать Инструменты\Параметры, а затем изменить этот параметр в VS2013:

введите описание изображения здесь

Ответ 4

inetmgr, затем перейдите в Application pool- > Advanced settings вашего пула- > , если опция "Включить 32-разрядные приложения" установлена ​​в true; и перезапустить IIS. снова проверьте.!

Ответ 5

Исключение BadImageFormatException в приложении, запущенном в IIS (не работает от VS, поскольку визуальная студия исправляет проблему с помощью сборки для "Любой процессор" ) может быть вызвана следующим:

Сайт - это сервер, который является x64, а параметр пула приложений по умолчанию для Enable 32-Bit Applications - False. и у вас есть 32-битные сборки

На уровне Visual Studio исправление:

  • Измените настройку проекта "Целевой процессор" на "ANYCPU"

Ответ 6

Убедитесь, что вы подтвердили настройку "Предпочитаете 32-разрядную". В моем случае Visual Studio 2012 установил этот параметр по умолчанию. Попытка использовать что-либо из внешней DLL не удалась, пока я не отмечен "Предпочитаю 32-бит" .

enter image description here

Ответ 7

Это определенно проблема с некоторыми из проектов, созданных для совместимости с x86, а не с любым процессором. Если бы мне пришлось угадать, я бы сказал, что некоторые ссылки между вашими проектами, вероятно, ссылаются на dll в некоторых папках bin\debug, а не на ссылки на проекты.

Когда проект скомпилирован для x86 вместо "Any CPU", DLL переходит в папку bin\x86\debug вместо bin\debug (что, вероятно, относится к вашим ссылкам).

Но в любом случае вы должны использовать ссылки на проекты между вашими проектами.

Ответ 8

Если в Visual studio с IIS выражать работу и когда публикация не удалась, попробуйте это: введите описание изображения здесь