0

运行具有该配置的 C#/VB SmartClient 应用程序时出现BadImageFormatException 。Any CPU如果我使用x86配置,那么它运行良好。这是一个旧的遗留项目,我偶尔需要修改它并且我不知道历史,所以我只能猜测包含 32 位本机代码的 dll 会导致此错误。这一切都是有道理的,除了当配置为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>
4

2 回答 2

1

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

可能的解决方案包括:

  1. 恢复为 32 位运行。
  2. 查找依赖组件的 64 位版本。
于 2014-03-10T18:16:09.617 回答
0

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

于 2014-03-10T18:13:55.607 回答