Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/.net/25.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# .NET 2/3应用程序拒绝在.NET 4下运行_C#_.net - Fatal编程技术网

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

C# .NET 2/3应用程序拒绝在.NET 4下运行,c#,.net,C#,.net,我编写了一个小实用程序来收集系统数据并将其输出到文本框。一点也不复杂,目的是审核用户机器,为软件的推出做准备 我不能说用户将操作哪个版本的.NET,所以在创建解决方案时,我选择了framework 2.0 在我的机器上调试和测试发布的EXE很好。 当我将它加载到只有.NET 4.0(完整版)的XP机器上时,它拒绝运行,并建议我需要安装.NET 2.0。 然后我将版本更新为3.0,但这做了同样的事情 我的计算机上有.NET 4.0,为什么这个应用程序不能在安装了更高版本的情况下运行?我如何使应用程

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

我不能说用户将操作哪个版本的.NET,所以在创建解决方案时,我选择了framework 2.0

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


我的计算机上有.NET 4.0,为什么这个应用程序不能在安装了更高版本的情况下运行?我如何使应用程序在所有.NET版本下运行?

我过去所做的是将以下设置添加到我的.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>


指定了应用程序可以运行的.NET运行时版本。

重要的是,如果您打算在.NET framework 4下运行应用程序,则应在.NET framework 4下测试该应用程序,因为.NET 4是该框架的主要版本,并且可能引入了突破性的更改。“可能有”?做这就是为什么程序在默认情况下不能标记为兼容。一个简单的例子是(例如)
List
在.NET4中实现了
IEnumerable
,但不是之前。