0

我有一个 .NET 4.0 应用程序。第一次运行时,安装程​​序运行,应用程序正常打开。如果你在它已经安装的时候运行它,它会抛出这个异常:

System.BadImageFormatException was unhandled
Message: Could not load file or assembly '[my assembly]' or one of its dependencies. 
This assembly is built by a runtime newer than the currently loaded runtime and cannot be loaded.

该应用程序以前是 .NET 3.5,我将主项目和两个依赖项更改为 .NET 4。还有其他使用 .NET 2 和 .NET 3.5 的参考,但没有一个高于 4。知道这里发生了什么吗?

4

2 回答 2

1

不确定它第一次是如何工作的,但根据错误消息,看起来您的客户端计算机确实没有安装 .NET 4 框架(不确定您是否只需要 .NET 4 的客户端版本或完整版本)。

于 2013-04-17T02:28:16.470 回答
0

问题是我将项目更改为在 .NET 4(已安装)上构建,但我的程序在第一次启动后从另一个位置加载不同的 App.config 以进行更新。该配置文件包含

<startup>
  <supportedRuntime version="v2.0.50727"/>
</startup>

代替

<startup>
  <supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.0"/>
</startup>

这导致我的应用程序在启动时加载 3.5 运行时而不是使用 .NET 4。

于 2013-04-26T15:35:15.473 回答