Windows 系统自带的 .NET Framework 版本号Windows 系统自带的 .NET Framework 版本号
对于开发winform或者wpf的对应版本问题可以参考如下:Windows 系统自带的 .NET Framework 版本号
自 Windows 10 (1903) 版本开始,自带的 .NET Framework 版本一直保持为 4.8 并且不再允许手动安装。如果 .NET Framework 出了问题,基本只能重装系统;而 Windows Update 就有可能把 .NET Framework 搞坏。
① Windows Server :
Windows Server版本 | 自带的.NET Framework 版本 |
Windows Server 2022 | .NET Framework 4.8 |
Windows Server 2019 | .NET Framework 4.7.2 |
Windows Server 2016 1809 | .NET Framework 4.7.2 |
Windows Server 2016 1803 | .NET Framework 4.7.2 |
Windows Server 2016 1709 | .NET Framework 4.7.1 |
Windows Server 2016 | .NET Framework 4.6.2 |
Windows Server 2012 R2 | .NET Framework 4.5.1 |
Windows Server 2012 | .NET Framework 4.5 |
Windows Server 2008 R2 | .NET Framework 3.0 |
Windows Server 2008 SP2 | .NET Framework 2.0 SP2 |
Windows Server 2008 SP1 | .NET Framework 2.0 SP1 |
Windows Server 2008 | .NET Framework 2.0 SP1 |
Windows Server 2003 (x64) | 无 |
Windows Server 2008 (x86) | .NET Framework 1.1 |
② Windows :
Windows 版本 | 自带的.NET Framework 版本 |
Windows 11 | .NET Framework 4.8 |
Windows 10 22H2 | .NET Framework 4.8 |
Windows 10 21H2 | .NET Framework 4.8 |
Windows 10 21H1 | .NET Framework 4.8 |
Windows 10 20H2 | .NET Framework 4.8 |
Windows 10 2004 | .NET Framework 4.8 |
Windows 10 1909 | .NET Framework 4.8 |
Windows 10 1903 | .NET Framework 4.8 |
Windows 10 1809 | .NET Framework 4.7.2 |
Windows 10 1803 | .NET Framework 4.7.2 |
Windows 10 1709 | .NET Framework 4.7.1 |
Windows 10 1703 | .NET Framework 4.7 |
Windows 10 1607 | .NET Framework 4.6.2 |
Windows 10 1511 | .NET Framework 4.6.1 |
Windows 10 1507 | .NET Framework 4.6 |
Windows 8 SP1 | .NET Framework 4.5.1 |
Windows 8 | .NET Framework 4.5 |
Windows 7 SP1 | .NET Framework 3.5.1 |
Windows 7 | .NET Framework 3.5.1 |
Windows Vista SP1 | .NET Framework 2.0 SP1 |
Windows Vista | .NET Framework 2.0 |
Windows XP SP3 | .NET Framework 1.0 |
Windows XP SP2 | .NET Framework 1.0 |
Windows XP SP1 | .NET Framework 1.0 |
注意,现在很多操作系统都做了ghost
镜像版本,所以系统自带的.NET
版本不一定和上面的表格一致,很可能你的win7
就自带了.NET 4.0
了。
查阅了微软的官方文档:
https://docs.microsoft.com/zh-cn/dotnet/framework/migration-guide/how-to-configure-an-app-to-support-net-framework-4-or-4-5
解决办法如下:
使用英语阅读添加
如何:将应用配置为支持 .NET Framework 4 或更高版本
- 项目
- 2023/05/10
- 11 个参与者
反馈
本文内容
托管公共语言运行时 (CLR) 的所有应用程序都必须启动(或激活)CLR,才能运行托管代码。 通常,.NET Framework 应用在生成它的 CLR 版本上运行,但你可以使用应用程序配置文件(有时称为 app.config 文件)来更改桌面应用程序的此行为。 但是,您不能使用应用程序配置文件来更改 Windows 应用商店应用或 Windows Phone 应用程序的默认激活行为。 本文说明如何使桌面应用程序能够在 .NET Framework 的其他版本上运行,并提供了如何定位版本 4 或更高版本的示例。
按下列顺序确定在其上运行应用程序的 .NET Framework 的版本:
-
配置文件。
如果应用程序配置文件中的 <supportedRuntime> 条目指定了一个或多个 .NET Framework 版本,且用户的计算机安装的是其中一个版本,那么应用程序就会在相应版本中运行。 配置文件按列出顺序读取 <supportedRuntime> 条目,并使用列出的第一个在用户计算机上安装的 .NET Framework 版本。 (对 1.0 版使用 <requiredRuntime> 元素。)
-
编译的版本。
如果不存在任何配置文件,但用户计算机上存在基于其构建应用程序的 .NET Framework 版本,则此应用程序将在此版本上运行。
-
已安装的最新版本。
如果没有生成应用程序时使用的 .NET Framework 版本,且配置文件未在 <supportedRuntime> 元素中指定版本,那么应用程序会尝试在用户计算机上安装的最新版 .NET Framework 中运行。
但是,.NET Framework 1.0、1.1、2.0、3.0 和 3.5 应用程序不会自动在 .NET Framework 4 或更高版本上运行,在某些情况下,用户可能会收到错误,且系统可能会提示用户安装 .NET Framework 3.5。 由于不同版本的 Windows 系统包含的 .NET Framework 版本不同,因此激活行为还取决于用户的操作系统。 如果应用程序支持 .NET Framework 3.5 和 4 或更高版本,建议您在配置文件中使用多个条目来指明这一点,以避免 .NET Framework 初始化错误。 有关详细信息,请参见版本和依赖关系。
为了利用版本 4 和更高版本中的性能改进,可能还需要将 .NET Framework 3.5 应用配置为在 .NET Framework 版本 4 或更高版本上运行,甚至在安装了 .NET Framework 3.5 的计算机上也是如此。
重要
建议你始终在你支持的每个 .NET Framework 版本上测试应用程序。 若要了解如何将应用程序升级为支持更高版本的 .NET Framework,请参阅版本兼容性。
若要了解如何将 .NET Framework 1.0 和 1.1 应用程序修改为支持 Windows 7 和 Windows 8,请参阅从 .NET Framework 1.1 迁移。
将应用程序配置为在 .NET Framework 4 或更高版本上运行
-
添加或查找 .NET Framework 项目的配置文件。 应用程序的配置文件与该应用程序位于相同的目录中,并且具有相同的名称,只不过它具有扩展名 .config。 例如,对于名为 MyExecutable.exe 的应用程序,应用程序配置文件的名称为 MyExecutable.exe.config。
若要添加配置文件,请在 Visual Studio 菜单栏上依次选择“项目”和“添加新项”。 在左侧窗格中,依次选择“常规”和“配置文件”。 将配置文件命名为 App.config。这些菜单选项对于 Windows 应用商店应用或 Windows Phone 应用程序项目不可用,因为无法在这些平台上更改激活策略。
-
在应用程序配置文件中添加如下 <supportedRuntime> 元素:
XML复制
<configuration> <startup> <supportedRuntime version="version"/> </startup> </configuration>
其中,<version> 指定与应用程序支持的 .NET Framework 版本匹配的 CLR 版本。 使用以下字符串:
-
.NET Framework 1.0:“v1.0.3705”
-
.NET Framework 1.1:“v1.1.4322”
-
.NET Framework 2.0、3.0 和 3.5:“v2.0.50727”
-
.NET Framework 4 及更高版本:“v4.0”
可以添加多个 <supportedRuntime> 元素(按优先顺序列出)来指定对多个 .NET Framework 版本的支持。
-
下表演示安装在计算机上的应用程序配置文件设置和 .NET Framework 版本如何确定在计算机上运行的 .NET Framework 3.5 应用程序的版本。 这些示例特定于 .NET Framework 3.5 应用程序,但您可以将类似逻辑用于使用早期版本的 .NET Framework 生成的目标应用程序。 请注意,.NET Framework 2.0 版本号 (v2.0.50727) 用于在应用程序配置文件中指定 .NET Framework 3.5。
App.config 文件设置 | 在安装了 3.5 版的计算机上 | 在安装了版本 3.5 和 4 或更高版本的计算机上 | 在安装了版本 4 或更高版本的计算机上 |
---|---|---|---|
None | 在 3.5 上运行 | 在 3.5 上运行 | 显示提示用户安装正确版本的错误消息* |
<supportedRuntime version="v2.0.50727"/> | 在 3.5 上运行 | 在 3.5 上运行 | 显示提示用户安装正确版本的错误消息* |
<supportedRuntime version="v2.0.50727"/> <supportedRuntime version="v4.0"/> | 在 3.5 上运行 | 在 3.5 上运行 | 在 4 或更高版本上运行 |
<supportedRuntime version="v4.0"/> <supportedRuntime version="v2.0.50727"/> | 在 3.5 上运行 | 在 4 或更高版本上运行 | 在 4 或更高版本上运行 |
<supportedRuntime version="v4.0"/> | 显示提示用户安装正确版本的错误消息* | 在 4 或更高版本上运行 | 在 4 或更高版本上运行 |
* 若要详细了解此错误消息及其避免方法,请参阅 .NET Framework 初始化错误:管理用户体验。
③ .NET Framework 版本与CLR :
.NET Framework 版本 | CLR版本 |
.NET Framework 1.X(最高:1.1) | CLR 1.0 |
.NET Framework 2.X(最高:2.0 SP2) | CLR 2.0 |
.NET Framework 3.X(最高:3.5 SP1) | |
.NET Framework 4.X(最新:4.8.1) | CLR 4.0 |
查看版本的方法一:官方办法
微软官方提供了工具,确定已安装的 .NET Framework 版本 - .NET Framework | Microsoft Learn
综上:建议用.net framework 3.5作为生成目标,CPU设置为any来开发,然后在app.config文件里加上
‘’‘’
<?xml version="1.0" encoding="utf-8"?>
<configuration>
<startup useLegacyV2RuntimeActivationPolicy="true">
<supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.0"/>
<requiredRuntime version="v4.0.30319" />
<supportedRuntime version="v2.0.50727"/>
</startup>
</configuration>
这样开发出来的程序既可以在.net 3.5上面运行,也可以在.net 4.x下运行。
xp系统本身不带任何.net,用户装一个3.5或4.0后可运行。
win7自带3.5,无需再装,直接运行。
win8自带4.5,无需再装,直接运行。
win8.1自带4.5.1,无需再装,直接运行。
win10自带4.6,无需再装,直接运行。