BadImageFormatException - 是否可以指定用于运行可执行文件的.NET版本?

时间:2010-09-14 05:58:44

标签: .net

我正在从命令行运行带有.com扩展名的.NET 2.0可执行文件,并收到以下错误:

System.BadImageFormatException : The module was expected to contain an assembly manifest. (Exception from HRESULT: 0x80131018)

我很确定它正在尝试从.NET 2.0全局程序集缓存中加载DLL。

我只在安装了.net 4.0 / visual studio 2010的机器上出现此错误,所以我假设它使用了错误的.net框架版本来运行。 关于如何确认这一假设的任何想法?

或者有没有办法指定程序使用.net 2运行时而不是.net 4来运行.com文件?

1 个答案:

答案 0 :(得分:1)

如果仅安装了.NET 4.0 Framework,并且您希望为/ .NET 2.0运行应用程序构建,则需要通知.NET 4.0 Framework该应用程序需要.NET 2.0 Runtime。这是使用带有以下条目的配置文件完成的。

要设置的必要属性是useLegacyV2RuntimeActivationPolicy

<?xml version="1.0" encoding="utf-8" ?>
<configuration>
 <startup useLegacyV2RuntimeActivationPolicy="true">
  <supportedRuntime version="v2.0.50727"/>
  <supportedRuntime version="v4.0.30319"/>
 </startup>
</configuration>