.NET 的版本和支持

Microsoft 发布了 .NET 的主要版本、次要版本和服务更新(补丁)。 本文介绍版本类型、服务更新、SDK 功能区段、支持期限和支持选项。

注意

有关 .NET Framework 的版本控制和支持的信息,请参阅 .NET Framework 生命周期

版本类型

关于各版本类型的信息在版本号中以 major.minor.patch 格式进行编码。

例如:

  • .NET 6 和 .NET 7 是主要版本。
  • .NET Core 3.1 是 .NET Core 3.0 主要版本后的第一个次要版本。
  • .NET Core 5.0.15 是适用于 .NET 5 的第 15 个修补程序。

有关已发布的 .NET 版本列表以及有关 .NET 的发布频率信息,请参阅支持策略

主要版本

主要版本包括新增功能、新的公共 API 图面和 bug 修复。 示例包括 .NET 6 和 .NET 7。 由于变更的性质,这些版本预计包含中断性变更。 主要版本与先前的主要版本并行安装。

次要版本

次要版本也包括新功能、公共 API 图面和 bug 修复,还可能包含中断性变更。 .NET Core 3.1 是一个示例。 次要版本与主要版本的区别在于变更量较小。 应用程序从 .NET Core 3.0 升级到 3.1 所经历的变更较小。 次要版本与先前的次要版本并行安装。

服务更新

几乎每个月都会发布服务更新(补丁),这些更新既包含安全性 bug 修复,又包含非安全性 bug 修复。 例如,.NET 5.0.8 是 .NET 5 的第 8 个更新。 如果这些更新包含安全性修复,则会在“星期二修补日”发布,该日期始终为每月的第二个星期二。 服务更新应保持兼容性。 从 .NET Core 3.1 开始,服务更新会删除之前的更新。 例如,成功安装最新的 3.1 服务更新会删除之前的 3.1 更新。

功能区段(仅 SDK)

.NET SDK 的版本控制与 .NET 运行时略有不同。 为了与新的 Visual Studio 版本保持一致,.NET SDK 更新有时包含新的功能或新版组件(如 MSBuild 和 NuGet)。 这些新功能或组件可能与早期 SDK 更新中针对同一主要或次要版本发布的功能或组件版本不兼容。

为了区分此类更新,.NET SDK 使用功能区段的概念。 例如,第一个 .NET 5 SDK 是 5.0.100。 此版本对应于 5.0.1xx 功能区段。 功能区段在版本号第三部分的百数组中定义。 例如,5.0.101 和 5.0.201 属于两个不同功能区段的版本,而 5.0.101 和 5.0.199 则属于同一个功能区段。 安装 .NET SDK 5.0.101 时,会从计算机中删除 .NET SDK 5.1.100(如果存在)。 当在同一台计算机上安装 .NET SDK 5.0.200 时,不会删除 .NET SDK 5.0.101。

有关 .NET SDK 和 Visual Studio 版本之间的关系详细信息,请参阅 .NET SDK、MSBuild 和 Visual Studio 版本控制

运行时前滚和兼容性

主要和次要更新与先前的版本并行安装。 针对特定 major.minor 版本构建的应用程序会继续使用该目标运行时,即使安装了较新版本也是如此。 应用不会自动前滚以使用运行时的较新 major.minor 版本,除非你选择启用此行为。 针对 .NET Core 3.0 构建的应用程序不会在 .NET Core 3.1 上自动开始运行。 建议在部署到生产环境之前,重新生成应用并针对较新的主要或次要运行时版本进行测试。 有关详细信息,请参阅依赖于框架的应用前滚独立部署运行时前滚

服务更新的处理方式与主要和次要版本不同。 默认情况下,针对 .NET 7 构建的应用程序在 7.0.0 运行时上运行。 安装服务更新后,该应用程序会自动前滚,以使用较新的 7.0.1 运行时。 此行为是默认行为,因为我们希望在安装安全性修复后立即使用这些修复,而不需要执行任何其他操作。 你可以选择禁用此默认前滚行为。

.NET 版本生命周期

.NET 版本采用 新式生命周期,摒弃了 .NET Framework 版本所采用的固定生命周期。 采用新式生命周期的产品具有类似于服务的支持模型,支持周期更短,发布频率更高。

版本跟踪

版本有两种支持跟踪:

  • 标准期限支持 (STS) 版本

    在下一个主要或次要版本发布后 6 个月内,支持这些版本。

    示例:

    • .NET 5 是一个 STS 版本,已于 2020 年 11 月发布。 它有 18 个月支持期,直至 2022 年 5 月。
    • .NET 7 是一个 STS 版本,已于 2022 年 11 月发布。 它有 18 个月支持期,直至 2024 年 5 月。
  • 长期支持 (LTS) 版本

    这些版本至少支持 3 年,或下一个 LTS 版本发布后 1 年(以较晚发生者为准)。

    示例:

    • .NET Core 3.1 是一个 LTS 版本,于 2019 年 12 月发布。 它有 3 年支持期,直到 2022 年 12 月。
    • .NET 6 是一个 LTS 版本,已于 2021 年 11 月发布。 它有 3 年支持期,直到 2024 年 11 月。

版本在长期支持 (LTS) 与 STS 之间交替,因此较早的版本获得的支持期可能比较晚的版本要长。 例如,.NET Core 3.1 是支持时间持续到 2022 年 12 月的 LTS 版本。 .NET 5 版本的发布几乎晚了一年,但它的支持期结束更早,于 2022 年 5 月结束。

服务更新每月发布一次,包括安全性和非安全性(可靠性、兼容性和稳定性)修复。 服务更新的支持时间持续到下一次发布服务更新。 服务更新具有运行时前滚行为。 这意味着应用程序默认在最新安装的运行时服务更新上运行。

如何选择版本

如果你要构建服务并希望继续定期更新服务,则 STS 版本(例如 .NET 7 运行时)可能是最佳选择,它可让你持续获得 .NET 的最新功能。

如果你要构建将分发给使用者的客户端应用程序,那么稳定性可能比最新功能的可获得性更重要。 在使用者可以升级到应用程序的下一个版本之前,可能需要在一段时间内支持你的应用程序。 在这种情况下,LTS 版本(如 .NET 6 运行时)可能是合适的选择。

注意

建议升级到最新的 SDK 版本,即使它是 STS 版本,因为它可以面向所有可用的运行时。

服务更新支持

.NET 服务更新的支持时间持续到下一次发布服务更新。 服务更新每月发布一次。

你需要定期安装服务更新以确保应用处于安全且受支持的状态。 例如,如果 .NET 7 的最新服务更新为 7.0.8,而我们发布了 7.0.9,则 7.0.8 不再是最新版本。 .NET 7 的受支持服务级别为 7.0.9。

有关每个主要和次要版本的最新服务更新信息,请参阅 .NET 下载页面

结束支持

结束支持日期是指 Microsoft 不再为产品版本提供修复、更新或技术协助的日期。 在此日期之前,请确保你已升级为使用受支持的版本。 不受支持的版本不再能接收保护应用程序和数据的安全性更新。 如需了解各版本 .NET 受支持的日期范围,请参阅支持策略

支持的操作系统

.NET 可以在一系列操作系统上运行。 每个操作系统都有一个生命周期,由发起组织(例如 Microsoft、Red Hat 或 Apple)定义。 在添加和删除操作系统版本支持时,我们将考虑这些生命周期计划。

当操作系统版本不受支持时,我们将停止测试该版本并停止对该版本提供支持。 用户需要升级到受支持的操作系统版本才能获得支持。

有关详细信息,请参阅 .NET OS 生命周期策略

获取支持

你可以选择 Microsoft 辅助支持或社区支持。

Microsoft 支持

若需要辅助支持,请与 Microsoft 支持专业人员联系

你需要处于受支持的服务级别(最新可用的服务更新)才能获得支持。 如果系统运行 .NET 7,而已发布 7.0.8 服务更新,那么第一步需要安装 7.0.8。

社区支持

有关社区支持,请参阅社区页面