.NET 2 / 3 应用程序拒绝在 .NET 4 下运行

.NET 2 / 3 application refuses to run under .NET 4

提问人:Damo 提问时间:3/18/2012 最后编辑:Daniel MannDamo 更新时间:3/18/2012 访问量:1007

问:

我编写了一个小实用程序来收集系统数据并将其输出到文本框中。一点也不复杂,目的是审核用户机器,为软件推出做准备。

我无法确定用户将运行哪个版本的 .NET,因此当我创建解决方案时,我选择了 framework 2.0。

在我的机器上调试和测试已发布的EXE是可以的。 当我将它加载到只有 .NET 4.0(完整)的 XP 机器上时,它拒绝运行,建议我需要安装 .NET 2.0。 然后我将版本更新到 3.0,但这做了同样的事情。

我的机器上有 .NET 4.0,为什么这个应用程序不能在安装更高版本的情况下运行,我怎样才能使应用程序在所有 .NET 版本下运行?

C# .net

评论


答:

9赞 Uwe Keim 3/18/2012 #1

我过去所做的是将以下设置添加到我的 .NET 2.0 应用程序的“*.exe.config”文件中:

<?xml version="1.0" encoding="utf-8"?>

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

supportedRuntime 元素指定应用程序可以在哪些版本的 .NET 运行时下运行。

评论

5赞 Daniel Mann 3/18/2012
请务必注意,如果您打算在 .NET Framework 4 上运行应用程序,则应在 .NET Framework 4 下测试该应用程序,因为 .NET 4 是该框架的主要版本,并且可能引入了重大更改。
1赞 3/18/2012
“可能有”?这就是为什么默认情况下不能将程序标记为兼容的原因。一个简单的例子是(例如)在 .NET 4 中实现,但不是之前。List<string>IEnumerable<object>