.NET SDK、MSBuild 和 Visual Studio 版本控制
.NET SDK 的版本控制,以及它與 Visual Studio 和 MSBuild 的關聯性,可能會令人困惑。 MSBuild 搭配 Visual Studio 版本,但也包含在 .NET SDK 中。 MSBuild 和 Visual Studio 具有可與 SDK 具有共同作用的最低版本,並且不會載入比該最低版本還舊的 Visual Studio 版本。
版本控制
.NET SDK 版本的第一個部分會比對包含的 .NET 版本、預設執行目標及目標。 功能區從 1 開始,並針對每季度的 Visual Studio 次要版本增加。 修補程式版本會隨著每個月的服務更新遞增。
例如,7.0.203 版隨附於 .NET 7,這是從 7.0.100 首次推出之後的第二個次要 Visual Studio 版本,且是從 7.0.200 發行後的第三個修補程式。
生命週期
SDK 的支援時間範圍通常符合所包含的 Visual Studio 版本。
展開以查看不支援的 .NET 版本
SDK 版本 | MSBuild/Visual Studio 版本 | 出貨日期 | 生命週期 |
---|---|---|---|
2.1.5xx | 15.9 | '18 年 11 月 | 2021 年 8 月 |
2.1.8xx | 16.2 (No VS) | 2019 年 7 月 | 2021 年 8 月 |
3.1.1xx | 16.4 | 2019 年 12 月 | 2021 年 10 月 |
3.1.4xx | 16.7 | 2020 年 8 月 | 2022 年 12 月 |
5.0.1xx | 16.8 | 2020 年 11 月 | 2021 年 3 月 |
5.0.2xx | 16.9 | 2021 年 3 月 | 2022 年 5 月 |
5.0.3xx | 16.10 | 2021 年 5 月 | 2021 年 8 月 |
5.0.4xx | 16.11 | 2021 年 8 月 | 2022 年 5 月 |
6.0.1xx | 17.0 | 2021 年 11 月 | 2024 年 11 月 |
6.0.2xx | 17.1 | 2022 年 2 月 | 2022 年 5 月 |
6.0.3xx | 17.23 | 2022 年 5 月 | 2023 年 10 月 |
6.0.4xx | 17.3 | 2022 年 8 月 | 2024 年 11 月 |
7.0.1xx | 17.4 | 2022 年 11 月 | 2024 年 5 月 |
7.0.2xx | 17.53 | 2023 年 2 月 | 2023 年 5 月 |
7.0.3xx | 17.6 | 2023 年 5 月 | 2024 年 5 月 |
7.0.4xx | 17.7 | 2023 年 8 月 | 2024 年 5 月 |
支援的 .NET 版本
SDK 版本 | MSBuild/Visual Studio 版本 | 出貨日期 | 生命週期 |
---|---|---|---|
8.0.1xx | 17.8 | 2023 年 11 月 | 11 月 25 日1 |
8.0.2xx | 17.93 | 2024 年 2 月 | 5 月 243 日 |
8.0.3xx | 17.10 | 2024 年 5 月 | 待定 |
8.0.4xx | 17.11 | 8 月 24 日 | 11 月 25 日2 |
9.0.1xx | 17.12 | 2024 年 11 月 | 2026 年 5 月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 8.0.200 需要較新的Visual Studio版本。 如需詳細資訊,請參閱支援原則 (部分機器翻譯)。
目標及支援規則
下列原則會指示在 中執行指定版本的 .NET SDK 的 MSBuild 和 Visual Studio 版本:
- 每個新的 TargetFramework 都需要新的 Visual Studio 版本或新的
dotnet
版本。 - 支援新 TargetFramework 的第一個 Visual Studio 版本成為 Roslyn API 表面、MSBuild 目標、來源產生器、分析器等 SDK 功能區的基礎。
- 支援新 TargetFramework 的新 .NET SDK 的第一個版本仍可與 Visual Studio 的之前版本一起搭配使用,以允許四分之一的工具和基礎結構 (例如動作和管線) 移轉。
SDK | Visual Studio 版本 SDK 隨附於 |
最低 Visual Studio 版本 | 其中最大 TargetFramework 最低 Visual Studio 版本 |
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.10 | 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 需求沒有改變,即 Visual Studio for .NET SDK 6.0.100 或 6.0.200 所需的最低版本仍然是 16.10。
1 7.0.300 中針對 Blazor 和 Razor 開發的中斷性變更需要 Visual Studio 版本 17.6 或更新版本。 如需詳細資訊,請參閱 dotnet/razor 問題 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 Preview 4 | 17.11 Preview 1 |
9.0.100 Preview 5 | 17.11 Preview 2 |
9.0.100 Preview 6 | 17.11 Preview 3 |
9.0.100 Preview 7 | 17.12 Preview 1 |
9.0.100 RC 1 | 17.12 Preview 2 |
9.0.100 RC 2 | 17.12 Preview 3 |
9.0.100 GA | 17.12 GA |