Разрешение вопросов, связанных с исключениями: System.BadImageFormatException
Исключение BadImageFormatException возникает, если образ файла DLL или выполняемая программа не является допустимым управляемым исполняемым файлом.
Полезные советы
Если в приложении используются 32-разрядные компоненты, необходимо обеспечить, чтобы оно выполнялось как 32-разрядное приложение.
Если для свойства Конечная платформа проекта приложения задано значение AnyCPU, скомпилированное приложение может выполняться как в 64-, так и в 32-разрядном режиме. Когда приложение выполняется как 64-разрядное, JIT-компилятор создает 64-разрядный машинный код. Если приложение зависит от 32-разрядного управляемого или неуправляемого компонента, этот компонент не будет загружен в 64-разрядном режиме. Чтобы устранить эту проблему, установите для свойства проекта Конечная платформа значение x86 и выполните повторную компиляцию.Убедитесь, что не используются компоненты, созданные с помощью другой версии платформы .NET Framework.
Это исключение возникает, когда приложение или компонент, который был разработан с использованием .NET Framework 1.0 или .NET Framework 1.1, пытается загрузить сборку, которая была разработана с помощью .NET Framework 2.0 с пакетом обновления 1 (SP1) или более поздней версии, или когда приложение, разработанное с использованием .NET Framework 2.0 с пакетом обновления 1 (SP1) или .NET Framework 3.5, пытается загрузить сборку, которая была разработана с помощью .NET Framework 4. Исключение BadImageFormatException может выявляться как ошибка времени компиляции, или это исключение может возникать во время выполнения. См. пример в описании класса BadImageFormatException.Убедитесь, что образ файла — это допустимая управляемая сборка или модуль.
Это исключение возникает, когда неуправляемая библиотека динамической компоновки (DLL) или исполняемый файл передается методу Load для загрузки.Дополнительные сведения для пользователей Visual Basic см. в разделе Устранение неполадок взаимодействия (Visual Basic).
Примечания
Отражение исполняемых файлов C++ может вызвать это исключение. Причина этого, вероятнее всего, в том, что компилятор C++ чередует адреса переадресации и раздел .Reloc исполняемого файла. Чтобы сохранить адреса переадресации в исполняемом файле C++, укажите при компоновке параметр /fixed:no.
Дополнительные причины возникновения этого исключения см. в описании класса BadImageFormatException.
См. также
Задачи
Практическое руководство. Использование помощника по исключениям
Ссылки
Журнал изменений
Дата |
Журнал |
Причина |
---|---|---|
Апрель 2011 |
Добавлены обычные причины возникновения исключения. |
Обратная связь от клиента. |