Не удалось загрузить файл или сборку "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 выражать работу и когда публикация не удалась, попробуйте это: ![введите описание изображения здесь]()