.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 | 5月 '21 | 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.9 | 2024 年 2 月 | 2024 年 5 月 |
8.0.3xx | 17.10 | 2024 年 5 月 | 1 月 26 日 |
8.0.4xx | 17.11 | 8 月 24 日 | 11 月 25 日2 |
9.0.1xx | 17.12 | 2024 年 11 月 | 5月26日 |
9.0.2xx | 17.13 | 2月25日 | 5月25日 |
9.0.3xx | 17.14 | 5月25日 | 5月26日 |
注意
1 .1xx .NET SDK 功能區在主要 .NET 版本的生命週期中都受到支援。 在延長支援期間,僅支援 Linux 的安全性修正和最低高優先順序的非安全性修正。 若要深入了解此延長支援的原因,請參閱來源組建支援 (英文)。
2 .4xx .NET SDK 功能群組在匹配執行階段的整個生命週期內,皆以獨立安裝的方式受支持。
目標及支援規則
以下原則決定指定版本的 .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 |
---|---|---|---|---|
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 |
9.0.200 | 17.13 | 17.12 | Net9.0 | Net9.0 |
9.0.300 | 17.14 | 17.12 | Net9.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。
只有 Visual Studio 17.8+ 才正式支援以 net8.0
為目標設定。
在 Visual Studio 17.12+ 中,目標 net9.0
僅受到正式支援。
若要確保一致的工具,您應該盡可能使用dotnet build
而不是msbuild
建置應用程式。
預覽版本控制
.NET SDK 的主要版本通常會在 Visual Studio 預覽版發行後幾天內發行。 雖然可能有其他組合可以運作,但只有最新發佈的預覽版本經過測試並獲得正式支援。 下表顯示每個 .NET 預覽版本在發佈之前進行測試時使用的 Visual Studio 版本。
SDK 預覽版本 | Visual Studio 版本 |
---|---|
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 |
10.0.100 Preview 1 | 17.14 Preview 1 |
10.0.100 Preview 2 | 17.14 Preview 2 |
10.0.100 Preview 3 | 17.14 Preview 3 |