如何在一个应用程序中支持.NET 2.0和.NET 4.0?

时间:2011-09-06 14:20:42

标签: .net clr

这是一个有趣的。我有一个针对.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的系统上运行应用程序时,无法运行

enter image description here

除了错误消息中请求的版本的顺序更改以反映对app.config的更改(因此CLR显然正确地获取该信息)之外,定义支持的运行时的顺序没有区别。 。我安装了.NET 2.0,它声称我需要安装.NET 2.0!我试过修复.NET 2.0的安装没有运气。我在第二台机器上重现了这种行为。

导致此失败的原因是什么?

1 个答案:

答案 0 :(得分:11)

我相信你可能错过了v

<supportedRuntime version="v2.0.50727" />
<supportedRuntime version="v4.0" />