我正在从命令行运行带有.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文件?
答案 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>