这是一个有趣的。我有一个针对.NET 2.0构建的小型可执行文件,以确保它在各种平台上运行。它是一个汇编程序,它只引用System。*命名空间。
当我在安装了.NET 2.0的操作系统上运行它时,运行正常。它不会在安装了 .NET 4.0的操作系统上运行,因为.NET 4.0引入了新的运行时。因此,我将支持的运行时信息添加到app.config文件中,如here所述。我添加了两个支持的运行时:
<supportedRuntime version="2.0.50727" />
<supportedRuntime version="4.0" />
现在,当我在安装了.NET 2.0的系统上运行应用程序时,无法运行:
除了错误消息中请求的版本的顺序更改以反映对app.config的更改(因此CLR显然正确地获取该信息)之外,定义支持的运行时的顺序没有区别。 。我安装了.NET 2.0,它声称我需要安装.NET 2.0!我试过修复.NET 2.0的安装没有运气。我在第二台机器上重现了这种行为。
导致此失败的原因是什么?
答案 0 :(得分:11)
我相信你可能错过了v
:
<supportedRuntime version="v2.0.50727" />
<supportedRuntime version="v4.0" />