NET Framework 版本和依赖关系

原文:https://docs.microsoft.com/zh-cn/dotnet/framework/migration-guide/versions-and-dependencies

每个版本的 .NET framework 都包含公共语言运行时 (CLR)、基类库和其他托管库。 本主题按版本介绍了 .NET Framework 的关键功能,提供了有关基础 CLR 版本和相关开发环境的信息,并标识了 Windows 操作系统所安装的版本。

备注

若要了解如何下载和安装 .NET Framework,请参阅安装面向开发人员的 .NET Framework

下表总结了 .NET Framework 版本历史,并将每个版本与 Visual Studio、Windows 和 Windows Server 相关联。 请注意,Visual Studio 提供了多目标功能,因此你将不会限于仅使用列出的 .NET Framework 版本。

每个新版本的 .NET Framework 都会保留早期版本中的功能并会添加新功能。 CLR 由其自己的版本号标识。 虽然 CLR 版本并不总是递增的,但 .NET Framework 版本号在每次发布时都会递增。 例如,.NET Framework 4、4.5 和更高版本包含 CLR 4,而 .NET Framework 2.0、3.0 和 3.5 包含 CLR 2.0。 (没有版本 3 的 CLR。)

有关受支持操作系统的完整列表,请参阅系统要求。 有关下载,请参阅安装面向开发人员的 .NET Framework。 有关确定计算机上已安装哪些 .NET Framework 版本,请参阅如何:确定安装了哪些 .NET Framework 版本

在表中,带有标记 ? 的操作系统版本上安装的 .NET Framework 版本必须在控制面板中启用(适用于 Windows)或通过服务器管理器启用(适用于 Windows Server),该标记显示在“包含在/可安装在 Windows 中”和“包含在/可安装在 Windows Server 中”列。

.NET Framework 版本 CLR 版本 功能 包含在 Visual Studio 版本中 ? 包括在内
+ 可在其上安装
Windows
? 包括在内
+ 可在其上安装
Windows Server
确定已安装的 .NET 版本
4.7.1 4 - 支持 .NET Standard 2.0。
- 支持配置生成器,允许在运行时创建配置文件。
- 运行时功能检查,使你能够确定运行时环境中是否支持预定义的功能。
- 可序列化值元组。
- 垃圾回收性能改进。
- 支持可移植的 PDB。
- 对 Message.HashAlgorithm 的 SHA-2 支持。
- 支持使用 HttpCookie.TryParse 方法分析 ASP.NET cookie。
- 支持针对 ASP.NET 窗体身份验证凭据的 SHA-2 哈希处理。
- 针对应用开发者的大量辅助功能改进;请参阅 .NET Framework 中辅助功能的新增功能
  ? 10 Fall Creators Update

+ 10 创意者更新 
+ 10 周年更新 
+ 8.1 
+7

+ 2016 
+ 2012 R2 
+ 2012 
+ 2008 R2 SP1
使用 ReleaseDWORD:

- 461308(Windows 10 创意者更新) 
- 461310(所有其他操作系统版本)

(请参阅说明

4.7 4 - 支持由操作系统提供的 TLS 支持级别。
- 能够为 TLS1.1 或 TLS1.2 配置默认的消息安全设置。 
- 提高了 DataContractJsonSerializer 的可靠性。 
- 提高了 WCF 应用程序序列化和反序列化的可靠性。 
- 能够扩展 ASP.NET 对象缓存。 
- 支持基于 WM_POINTER Windows 消息(而不是 WPF 应用程序的 Windows Ink 服务平台 (WISP))的触控/触笔堆叠。 
- 使用窗口的打印文档包 API 在 WPF 应用程序中进行打印。
- 增强了对 Windows 窗体应用程序(在 Windows 10 创意者更新上运行)的高 DPI 和多监视器支持。
  ? 10 创意者更新

+ 10 周年更新 
+ 8.1 
+7

+ 2016 
+ 2012 R2 
+ 2012 
+ 2008 R2 SP1
使用 ReleaseDWORD:

- 460798(Windows 10 创意者更新) 
- 460805(所有其他操作系统版本)

(请参阅说明

4.6.2 4 - 加密增强功能,包括对包含 FIS 186-3 DSA 的 X509 证书的支持、对持久化密钥对称加密的支持、对 SHA-2 哈希的 SignedXml 支持,提高了 ECDiffieHellman 密钥派生例程输入的清晰度。
- 对于 Windows Presentation Foundation (WPF) 应用,支持屏幕键盘和按监视器 DPI 感知。
- 对 TLS 1.1 和 TLS 1.2 协议的 ClickOnce 支持。
- 支持将 Windows 窗体和 WPF 应用转换为 UWP 应用。
  ? 10 周年更新

+ 10 十一月更新 
+ 10 
+ 8.1
+ 7

? 2016

+ 2012 R2
+ 2012
+ 2008 R2 SP1

使用 ReleaseDWORD:

- 394802(Windows 10 周年更新)
- 394806(所有其他操作系统版本)

(请参阅说明

4.6.1 4 - 对包含 ECDSA 的 X509 证书的支持
- 对 ADO.NET 中的硬件保护密钥的始终加密支持
- WPF 中的拼写检查改进
更多...
  ? 10 November Update

+ 10
+ 8.1
+ 8
+ 7

+ 2012 R2
+ 2012
+ 2008 R2 SP1
使用 ReleaseDWORD:

- 394254(Windows 10 十一月更新)
- 394271(所有其他操作系统版本)

(请参阅说明

4.6 4 - 使用 .NET Native 编译
- ASP.NET Core 5
- 事件跟踪改进
- 对页面编码的支持
更多...
2015,尽管部分 .NET 库可在 NuGet 上获取。 有关详细信息,请参阅 .NET Framework 和带外版本 ? 10
+ 8.1
+ 8
+ 7
+ Vista
+ 2012 R2
+ 2012
+ 2008 R2 SP1
+ 2008 SP2
使用 ReleaseDWORD:

- 393295 (Windows 10)
- 393297(所有其他操作系统版本)

(请参阅说明

4.5.2 4 - 用于事务系统和 ASP.NET 的新 API
- Windows 窗体控件中的系统 DPI 调整大小功能
- 分析改进
- ETW 和压力日志记录改进
更多...
- + 8.1
+ 8
+ 7
+ Vista
+ 2012 R2
+ 2012
+ 2008 R2 SP1
+ 2008 SP2
使用 ReleaseDWORD:379893
(请参阅说明
4.5.1 4 - 对 Windows Phone 应用商店应用的支持
- 自动绑定重定向
- 性能和调试改进
更多...
2013 ? 8.1
+ 8
+ 7
+ Vista
? 2012 R2
+ 2012
+ 2008 R2 SP1
+ 2008 SP2
使用 ReleaseDWORD:

- 378675 (Windows 8.1)
- 378758(所有其他)

(请参阅说明

4.5 4 - 对 Windows 应用商店应用的支持
- WPF、WCF、WF、ASP.NET 更新
更多...
2012 ? 8
+ 7
+ Vista
? 2012
+ 2008 R2 SP1
+ 2008 SP2
使用 ReleaseDWORD:378389
(请参阅说明
4 4 - 扩展的基类库
- 使用可移植类库的跨平台开发
- MEF、DLR、代码协定
更多...
2010 + 7
+ Vista
+ 2008 R2 SP1
+ 2008 SP2
+ 2003
请参阅说明
3.5 2.0 - 启用 AJAX 的网站
- LINQ
- 动态数据
更多...
2008 ? 10? 8.1
? 8*
? 7
+ Vista
?2008 R2 SP1
+ 2012 R2
+ 2012
+ 2008 SP2
+ 2003
请参阅说明
3.0 2.0 - WPF、WCF、WF、CardSpace - ? Vista ? 2008 R2 SP1
? 2008 SP2*
+ 2003
请参阅说明
2.0 2.0 - 泛型
- ASP.NET 添加项
更多...
2005 - ? 2008 R2 SP1
? 2008 SP2
? 2003
请参阅说明
1.1 1.1 - ASP.NET 和 ADO.NET 更新
- 并行执行
更多...
2003 - ? 2003 请参阅说明
1.0 1.0 .NET Framework 的第一个版本。 Visual Studio .NET - - 请参阅说明

通常,你不应卸载计算机上安装的 .NET Framework 的任何版本,因为你使用的应用程序可能依赖于特定版本,如果你移除该版本,则应用程序可能会中断。 你可以在一台计算机上同时加载 .NET Framework 的多个版本。 这意味着,你可以安装 .NET Framework 而无需卸载早期版本。 有关详细信息,请参阅入门

面向并运行 .NET Framework 版本 4.5 和更高版本的应用

.NET Framework 4.5 是替代计算机上的 .NET Framework 4 的就地更新,同样,.NET Framework 4.5.1 4.5.2、4.6、4.6.1、4.6.2、4.7 和 4.7.1 是对 .NET Framework 4.5 的就地更新,这意味着它们将使用相同的运行时版本,但是程序集版本会更新并包括新类型和成员。 在安装其中某个更新后,你的 .NET Framework 4、.NET Framework 4.5、.NET Framework 4.6 或 .NET Framework 4.7 应用应继续运行,而无需重新编译。 但是,反过来则不行。 建议不要在较早版本的 .NET Framework 上运行面向更高版本的 .NET Framework 的应用。 例如,我们建议你不要在 .NET Framework 4.5 上运行面向 .NET Framework 4.6 的应用。 以下准则将适用:

  • 在 Visual Studio 中,可以选择 .NET Framework 4.5 作为项目的目标框架(这将设置 GetReferenceAssemblyPaths.TargetFrameworkMoniker属性)以将项目编译为 .NET Framework 4.5 程序集或可执行文件。 此程序集或可执行文件随后可用于安装了 .NET Framework 4.5、4.5.1、4.5.2、4.6、4.6.1、4.6.2、4.7 或 4.7.1 的任何计算机。
  • 在 Visual Studio 中,可以选择 .NET Framework 4.5.1 作为项目的目标框架(这将设置 GetReferenceAssemblyPaths.TargetFrameworkMoniker 属性)以将项目编译为 .NET Framework 4.5.1 程序集或可执行文件。 此程序集或可执行文件应只在安装了 .NET Framework 4.5.1 或 .NET Framework 更高版本的计算机上运行。 将阻止面向 .NET Framework 4.5.1 的可执行文件在仅安装了 .NET Framework 的早期版本(例如 .NET Framework 4.5)的计算机上运行,并且系统会提示用户安装 .NET Framework 4.5.1。 此外,不应从面向 .NET Framework 的早期版本(例如 .NET Framework 4.5)的应用中调用 .NET Framework 4.5.1 程序集。

    此处使用的 .NET Framework 4.5.1 和 .NET Framework 4.5 仅作为示例。 此原则适用于任意满足以下条件的应用:应用所面向的 .NET framework 版本高于运行该应用的系统上的 .NET framework 版本。

.NET Framework 中的某些更改可能需要更改应用代码;请先参阅应用程序兼容性,然后再使用 .NET Framework 4.5 或更高版本运行现有应用。 若要了解如何安装当前版本,请参阅安装面向开发人员的 .NET Framework。 有关对 .NET Framework 的支持的信息,请参阅 Microsoft 支持网站上的 Microsoft .NET Framework 支持生命周期策略

以针对早期版本的应用程序为目标并运行这些应用程序

.NET Framework 版本 2.0、3.0 和 3.5 是使用同一 CLR 版本 (CLR 2.0) 生成的。 这些版本表示单个安装的连续层。 每个版本将基于早期版本以增量方式生成。 无法在计算机上并行运行版本 2.0、3.0 和 3.5。 在安装 3.5 版时,你将自动获得 2.0 和 3.0 层,并且为版本 2.0、3.0 和 3.5 生成的应用程序均可在 3.5 版上运行。 但是,.NET Framework 4 会结束此分层方法。 从 .NET Framework 4 开始,可使用进程内并行承载在单个进程中运行 CLR 的多个版本。 有关详细信息,请参阅程序集和并行执行

此外,如果你的应用程序面向 2.0、3.0 或 3.5 版,你的用户可能需要先在 Windows 8 或 Windows 8.1计算机上启用 .NET Framework 3.5,然后才能运行应用程序。 有关详细信息,请参阅在 Windows 10、Windows 8.1 和 Windows 8 上安装 .NET Framework 3.5

后续步骤

请参阅

版本兼容性 
Microsoft .NET Framework 支持生命周期策略 
安装和卸载 .NET Framework 受阻疑难解答

注册表版本位置:HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\NET Framework Setup\NDP\v4\Full中Release值

时间: 2024-11-09 00:41:50

NET Framework 版本和依赖关系的相关文章

.NET Framework 版本和依赖关系[微软官方文档]

.NET Framework 版本和依赖关系 微软官方文档: https://docs.microsoft.com/zh-cn/dotnet/framework/migration-guide/versions-and-dependencies 每个版本的 .NET framework 都包含公共语言运行时 (CLR).基类库和其他托管库. 本主题按版本介绍了 .NET Framework 的关键功能,提供了有关基础 CLR 版本和相关开发环境的信息,并标识了 Windows 操作系统所安装的版

.net开发客户端程序时,如何选择framework版本?

如果使用wpf,那么最佳的选择应该是.net framework 3.5 client profile,能支持xp. 使用3.5 client profile,比较大的问题是微软没有提供没有独立安装包,仅支持web安装,如果客户端不能上网,那... 恐怕只好给用户提供.net framework 3.5 的二百多兆的完整安装包了. 为什么不用.net framework 4.0 client profile? 4.0要求操作系统至少为xp sp3,目前(2015.09.25)还有不少的用户的xp

maven项目,去除jar包中的不想要的依赖关系(Document root element "beans", must match DOCTYPE root "null". )

maven dependencies中并不会删除 以下方法maven dependencies中并不会删除,可能程序引入的时候,会去掉这种依赖(猜的) 解释: 就是说项目中要用到某一个a.jar包,通过maven引入了之后,也自动的导入了该jar包所依赖的包,这里就会存在一个问题, 如果a.jar包依赖b.jar这个项目的1.0版本,可是我的项目中已经有b.jar这个项目2.0的版本了,这里就会造成冲突,解决的办 法是去除a.jar包依赖b.jar这个项目的1.0版本的依赖关系,让项目使用我已有

maven项目,去除jar包中的不想要的依赖关系

解释:就是说项目中要用到某一个a.jar包,通过maven引入了之后,也自动的导入了该jar包所依赖的包,这里就会存在一个问题,如果a.jar包依赖b.jar这个项目的1.0版本,可是我的项目中已经有b.jar这个项目2.0的版本了,这里就会造成冲突,解决的办法是去除a.jar包依赖b.jar这个项目的1.0版本的依赖关系,让项目使用我已有的包. 最近搭一个springmvc4.x的maven环境,由于要用到webserice,打算整合jersey做,在导入jersey-spring.jar时出

【译】Gradle 的依赖关系处理不当,可能导致你编译异常

文章 | Ashesh Bharadwaj 翻译 | 承香墨影 授权 承香墨影 翻译.编辑并发布 在 Android Studio 中,Gradle 构建过程对于开发者来说,很大程度上是抽象的.作为一个新的 Android 开发者,我们第一次遇到 Gradle 通常是在 build.gradle 文件中添加一个远程依赖项. 让我们看看如何阅读 Gradle 依赖关系树,并解决与依赖关系有关的问题. 这是我工作中管理的一个项目,我想将 targetVersion 升级到 27,我也在 Gradle

spring framework体系结构及内部各模块jar之间的maven依赖关系

很多人都在用spring开发java项目,但是配置maven依赖的时候并不能明确要配置哪些spring的jar,经常是胡乱添加一堆,编译或运行报错就继续配置jar依赖,导致spring依赖混乱,甚至下一次创建相同类型的工程时也不知道要配置哪些spring的依赖,只有拷贝,其实,当初我就是这么干的! spring的jar包只有20个左右,每个都有相应的功能,一个jar还可能依赖了若干其他jar,所以,搞清楚它们之间的关系,配置maven依赖就可以简洁明了,下面举个例子,要在普通java工程使用sp

spring framework体系结构及模块jar依赖关系

本文对于Spring的JAR包使用和配置,结合网友材料以spring 4.3.6.RELEASE版本为例,介绍spring框架结构和各模块对应JAR包以及模块间JAR依赖关系. 注:不同版本JAR包依赖会有所区别 spring官网给出了一张spring4的结构图 图中可以简单认为将spring分为5个部分:core.aop.data access.web.test,图中每个圆角矩形都对应相应jar包,如果在maven中配置,所有这些jar的“groupId”都是“org.springframew

[转]使用依赖关系注入在 ASP.NET Core 中编写干净代码

本文转自:http://blog.jobbole.com/101270/ 原文出处: Steve Smith ASP.NET Core 1.0 是 ASP.NET 的完全重新编写,这个新框架的主要目标之一就是更多的模块化设计.即,应用应该能够仅利用其所需的框架部分,方法是框架在它们请求时提供依赖关系.此外,使用 ASP.NET Core 构建应用的开发人员应该能够利用这一相同功能保持其应用松散耦合和模块化.借助 ASP.NET MVC,ASP.NET 团队极大地提高了框架的支持以便编写松散耦合代

Makefile 8——使用依赖关系文件

Makefile中存在一个include指令,它的作用如同C语言中的#include预处理指令.在Makefile中,可以通过include指令将自动生成的依赖关系文件包含进来,从而使得依赖关系文件中的内容成为Makefile的一部分. 在此之前,先介绍一下Makefile中的include的用法. 1 .PHONY:all clean 2 DIR_DEP=dep 3 DEPS=test_deps 4 all: exe 5 6 include $(DEPS) 7 8 dep: 9 mkdir d