.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 發行後的第三個修補程式。
Visual Studio 的安裝包含 .NET SDK 的單一相符複本。 如果您更新 Visual Studio 實例,Visual Studio 所安裝的 .NET SDK 也會更新,包括跨 .NET SDK 功能區與主要頻帶。 如果您想要使用與 Visual Studio 所安裝的不同 .NET SDK,您可以從 .NET 下載頁面安裝它,而 Visual Studio 升級不會觸及該版本。 您從此負責更新該 .NET SDK 的複本。
注意
.NET SDK 支援以較舊版本的 .NET 為目標,因此我們建議您始終更新 .NET SDK 以及您的 Visual Studio 版本。
生命週期
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 |