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-битный компонент в ваш процесс.

Возможные решения включают в себя:

  1. Вернуться к работе как 32-разрядный.
  2. Найдите 64-битную версию зависимого компонента.

Попробуйте изменить формат изображения значка окна или формы с.jpg на.png. иногда на сервере Windows эта ошибка возникала из-за формата изображения значка.

Другие вопросы по тегам