BadImageFormatException при запуске приложения
Я получаю исключение BadImageFormatException при запуске приложения C#/VB SmartClient с Any CPU
конфигурации. Если я использую x86
Конфигурация тогда работает нормально. Это старый, унаследованный проект, который мне иногда приходится изменять, и я не знаю историю, поэтому я могу только догадываться, что существуют dll, которые содержат 32-битный собственный код, вызывающий эту ошибку. Это все имеет смысл, за исключением того, что когда конфигурация Debug
& AnyCPU
он работает, только когда конфигурация Release
& AnyCPU
это терпит неудачу. Я не вижу существенных различий в файлах Debug.cfg.xml и Release.cfg.xml.
Может кто-нибудь сказать, почему это будет работать в Debug
конфигурация? Поскольку это работает, мне интересно, возможно ли как-нибудь запустить его в x64 (т.е. AnyCPU)
Из app.config:
<startup>
<supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.0"/>
</startup>
<startup useLegacyV2RuntimeActivationPolicy="true">
<supportedRuntime version="v4.0"/>
</startup>
2 ответа
Ваше приложение почти наверняка зависит от 32-битного компонента. Когда вы запускаете приложение как 64-битный процесс, оно не может загрузить этот 32-битный компонент в ваш процесс.
Возможные решения включают в себя:
- Вернуться к работе как 32-разрядный.
- Найдите 64-битную версию зависимого компонента.
Попробуйте изменить формат изображения значка окна или формы с.jpg на.png. иногда на сервере Windows эта ошибка возникала из-за формата изображения значка.