运行应用程序时出现BadImageFormatException

时间:2014-03-10 16:18:34

标签: c# vb.net badimageformatexception

运行带有Any CPU配置的C#/ VB SmartClient应用程序时,我得到 BadImageFormatException 。如果我使用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 个答案:

答案 0 :(得分:1)

您的应用程序几乎肯定取决于32位组件。当您将应用程序作为64位进程运行时,它无法将该32位组件加载到您的进程中。

可能的解决方案包括:

  1. 恢复为32位运行。
  2. 查找依赖组件的64位版本。

答案 1 :(得分:0)

尝试将窗口或表单图标图像格式从.jpg更改为.png。有时在Windows服务器上由于图标图像格式发生此错误。