Ответ 1
В конце концов я нашел решение этого и написал об этом в блоге: Развертывание .NET 4 Project - Ошибка 1001 (System.BadImageFormatException)
Обновление: Скопировано содержимое из :
"После участия в британских мероприятиях Tech Days на прошлой неделе в Лондоне я очень хотел перейти на Visual Studio 2010 и .NET-славу.
Я преобразовал некоторые из наших проектов здесь, в Crocus, в инфраструктуру .net 4 (что было невероятно просто - ничего не сломалось!) Я даже воспользовался некоторыми из быстрых возможностей для реализации функций в .net 4 и преобразовал некоторые из наших массивно перенаправленных методов для использования необязательных параметров.
Одним из проектов, в частности, является служба Windows, которая отправляет заказы на поставку по расписанию. (Недавно я писал о том, как это произошло из-за того, что Quartz.net ожидает время начала UTC)
У этого есть связанный с ним проект развертывания Visual Studio.
После создания недавно обновленной версии проекта .net 4 и развертывания файла .msi на нашем целевом сервере, я получил следующую ошибку:
Ошибка 1001 Исключение произошло при инициализации установки. System.BadImageFormatException: не удалось загрузить файл или сборку или один его зависимостей. Эта сборка построена с помощью среды выполнения, более новой, чем загружаемая в настоящее время среда выполнения и не может быть загружена.
Теперь я определенно обновил указанный сервер до .net 4 (дважды, по сути, - после первого раза я получил эту ошибку!)
После некоторого Googling некоторые люди говорили изменить целевую платформу на моих сборках, что я сделал, но безрезультатно.
В итоге я обнаружил проблему.
Вам нужно установить . Состояние запуска .NET Framework
Вот как это сделать:
- Щелкните правой кнопкой мыши проект развертывания в проводнике решений. В контекстном меню выберите "Вид" → "Условия запуска"
- В разделе "Версия" выберите ".NET Framework 4"
После восстановления и развертывания моего установочного файла все сработало нормально.