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

ala*_*irs 6 .net clr

这是一个有趣的.我有一个针对.NET 2.0构建的小型可执行文件,以确保它在各种平台上运行.它是一个汇编程序,它只引用System.*命名空间.

当我在安装了.NET 2.0的操作系统上运行它时,运行正常.它将操作系统上不能运行 .NET 4.0安装,因为与.NET 4.0中引入的新运行时.因此,我增加了支持的运行信息,以app.config文件,描述在这里.我添加了两个支持的运行时:

<supportedRuntime version="2.0.50727" />
<supportedRuntime version="4.0" />
Run Code Online (Sandbox Code Playgroud)

现在,当我在安装了.NET 2.0的系统上运行应用程序时,它无法运行:

在此输入图像描述

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

什么可能导致这失败?

Jon*_*eet 11

我相信你可能错过了v:

<supportedRuntime version="v2.0.50727" />
<supportedRuntime version="v4.0" />
Run Code Online (Sandbox Code Playgroud)