2011-09-06 109 views
6

这是一个有趣的。我有一个针对.NET 2.0构建的小型可执行文件,以确保它可以在各种平台上运行。它是一个单一程序集,仅引用System。*命名空间。如何在一个应用程序中支持.NET 2.0和.NET 4.0?

当我在安装了.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的安装,但没有运气。我在第二台机器上再现了这种行为。

什么可能导致此失败?

回答

11

我相信你可能只是还错过了v

<supportedRuntime version="v2.0.50727" /> 
<supportedRuntime version="v4.0" /> 
相关问题