.NET SDK、MSBuild 和 Visual Studio 版本控制
.NET SDK 的版本控制以及它与 Visual Studio 和 MSBuild 的关系可能会造成混淆。 MSBuild 版本虽与 Visual Studio 配合使用,但也包含在 .NET SDK 中。 SDK 有最低版本的 MSBuild 和 Visual Studio 可供使用,并且不会在早于该最低版本的 Visual Studio 版本中加载。
版本控制
默认情况下,.NET SDK 的第一部分与其包含、运行和面向的 .NET 版本相匹配。 功能带从 1 开始,并在每季度随 Visual Studio 次要版本而增加。 补丁版本随每个月的服务更新递增。
例如,版本 7.0.203 随 .NET 7 一起提供,是第二个 Visual Studio 次要版本,因为 7.0.100 是第一次出现,并且是自发布 7.0.200 后的第三个补丁。
生命周期
SDK 的支持时间范围通常与其中包含的 Visual Studio 版本一致。
展开以查看不受支持的 .NET 版本
SDK 版本 | MSBuild/Visual Studio 版本 | 发货日期 | 生命周期 |
---|---|---|---|
2.1.5xx | 15.9 | 11 月 18 日 | 8 月 21 日 |
2.1.8xx | 16.2 (No VS) | 7 月 19 日 | 8 月 21 日 |
3.1.1xx | 16.4 | 12 月 19 日 | 10 月 21 日 |
3.1.4xx | 16.7 | 8 月 20 日 | 12 月 22 日 |
5.0.1xx | 16.8 | 11 月 20 日 | 3 月 21 日 |
5.0.2xx | 16.9 | 3 月 21 日 | 5 月 22 日 |
5.0.3xx | 16.10 | 5 月 21 日 | 8 月 21 日 |
5.0.4xx | 16.11 | 8 月 21 日 | 5 月 22 日 |
7.0.1xx | 17.4 | 11 月 22 日 | 5 月 24 日 |
7.0.2xx | 17.53 | 2 月 23 日 | 5 月 23 日 |
7.0.3xx | 17.6 | 5 月 23 日 | 5 月 24 日 |
7.0.4xx | 17.7 | 8 月 23 日 | 5 月 24 日 |
支持的 .NET 版本
SDK 版本 | MSBuild/Visual Studio 版本 | 发货日期 | 生命周期 |
---|---|---|---|
6.0.1xx | 17.0 | 11 月 21 日 | 11 月 24 日1 |
6.0.2xx | 17.1 | 2 月 22 日 | 5 月 22 日 |
6.0.3xx | 17.23 | 5 月 22 日 | 10 月 23 日 |
6.0.4xx | 17.3 | 8 月 22 日 | 11 月 24 日2 |
8.0.1xx | 17.8 | 2023 年 11 月 | 11 月 25 日1 |
8.0.2xx | 17.93 | 2024 年 2 月 | 5 月 24 日 |
8.0.3xx | 17.1 | 5 月 24 日 | 待定 |
8.0.4xx | 17.11 | 8 月 24 日 | 11 月 25 日2 |
9.0.1xx | 17.12 | 11 月 24 日 | 5 月 26 日1 |
注意
仅在 Visual Studio 17.0+ 中正式支持将 net6.0
用作目标。
仅在 Visual Studio 17.4+ 中正式支持将net7.0
用作目标。
仅在 Visual Studio 17.8+ 中正式支持将 net8.0
用作目标。
1 .1xx .NET SDK 功能带在主要 .NET 版本的整个生命周期内都受支持。 在外延支持期内,仅支持 Linux 的安全修补程序和最小高优先级非安全修补程序。 要详细了解此外延支持的原因,请参阅源生成支持。
2 .4xx .NET SDK 功能区段作为独立安装在匹配运行时的生命周期内受到支持。
3 6.0.300、7.0.200 和 8.0.200 需要较新的 Visual Studio 版本。 有关详细信息,请参阅支持规则。
目标和支持规则
从 .NET SDK 7.0.100 和 .NET SDK 6.0.300 开始,已实施关于给定版本的 .NET SDK 将在哪个版本的 MSBuild 和 Visual Studio 中运行的策略。 该策略为:
- 每个新的 TargetFramework 都需要新的 Visual Studio 版本或新的
dotnet
版本。 - 支持新 TargetFramework 的 Visual Studio 的第一个版本将成为该 SDK for Roslyn API 表面、MSBuild 目标、源生成器、分析器等功能带的基础。
- 支持新 TargetFramework 的新 .NET SDK 的第一个版本仍可与 Visual Studio 的先前版本一起使用,以允许四分之一的工具和基础结构(例如,操作和管道)进行迁移。
SDK | Visual Studio 版本 (SDK 附带的) |
最低 Visual Studio 版本 | 最低 Visual Studio 版本中 的最大 TargetFramework |
dotnet 中的最大 TargetFramework |
---|---|---|---|---|
6.0.200 | 17.1 | 17.0 | Net6.0 | Net6.0 |
6.0.300 | 17.2 | 17.0 | Net6.0 | Net6.0 |
6.0.400 | 17.3 | 17.0 | Net6.0 | Net6.0 |
7.0.100 | 17.4 | 17.3 | Net6.0 | Net7.0 |
7.0.200 | 17.5 | 17.4 | Net7.0 | Net7.0 |
7.0.300 | 17.6 | 17.41 | Net7.0 | Net7.0 |
7.0.400 | 17.7 | 17.4 | Net7.0 | Net7.0 |
8.0.100 | 17.8 | 17.7 | Net7.0 | Net8.0 |
8.0.200 | 17.9 | 17.8 | Net8.0 | Net8.0 |
8.0.300 | 17.1 | 17.8 | Net8.0 | Net8.0 |
8.0.400 | 17.11 | 17.8 | Net8.0 | Net8.0 |
9.0.100 | 17.12 | 17.11 | Net8.0 | Net9.0 |
注意
下表描述了从 .NET SDK 7.0.100 和 .NET SDK 6.0.300 开始,这些版本控制规则的后续应用方式。 它还描述了策略如何应用于之前附带的 .NET SDK 版本(如果当时已就位)。 但是,先前版本的 SDK 的要求未发生更改 - 也就是说,用于 .NET SDK 6.0.100 或 6.0.200 的 Visual Studio 的最低所需版本仍是 16.10。
1 Blazor 和 Razor 开发的 7.0.300 中的中断性变更需要 Visual Studio 版本 17.6 或更高版本。 有关详细信息,请参阅dotnet/roslyn 问题 8718。
为了确保工具的一致性,应尽可能使用 dotnet build
而不是 msbuild
来生成应用程序。
预览版本控制
.NET SDK 的主要版本通常在 Visual Studio 预览版后的几天内发布。 虽然可能存在其他组合,但只有最新发布的预览版经过测试并得到官方支持。 下表显示了每种 .NET 预览版在发布之前进行测试的 Visual Studio 版本。
SDK 预览版 | Visual Studio 版本 |
---|---|
9.0.100 预览 1 | 17.10 预览 1 |
9.0.100 预览 2 | 17.10 预览 2 |
9.0.100 预览 3 | 17.10 预览 3 |
9.0.100 预览版 4 | 17.11 预览版 1 |
9.0.100 预览版 5 | 17.11 预览版 2 |
9.0.100 预览版 6 | 17.11 预览版 3 |
9.0.100 预览版 7 | 17.12 预览版 1 |
9.0.100 RC 1 | 17.12 预览版 2 |
9.0.100 RC 2 | 17.12 预览版 3 |