.NET SDK 工作負載集
工作負載集功能會提供一個版本號碼,代表一組 .NET SDK 工作負載。 安裝、更新和還原命令在工作負載集更新模式下使用此版本號,以提供以下好處:
- 您可以控制已安裝工作負載版本的變更頻率。 不使用工作負載集的替代作業模式稱為「鬆散資訊清單更新模式」。 在此模式下,當個別工作負載的新版本發布到任何已設定的 NuGet 摘要時,工作負載會自動更新。 在
workload-set
更新模式下,工作負載會保持在特定的工作負載集版本,直到您明確更改該版本。 - 您可以安裝和更新在同一時間發佈,且已知可以一起使用的工作負載版本組合。
- 您可以確保團隊中的每個人始終使用相同的工作負載版本。
- 您不必使用回復檔案來指定您想要使用的工作負載版本。
以下是您可以使用工作負載集的一些方式:
- 將
install
命令「釘選」到特定的工作負載集版本。 - 將已安裝的工作負載更新到最新的工作負載集版本。
- 更新到指定的工作負載集版本。
- 在 global.json 中指定工作負載集版本。
- 確認您目前的更新模式和工作負載集版本。
您仍然可以選擇安裝、更新或還原到每個單獨工作負載的最新版本,而忽略工作負載集。
必要條件
.NET 8.0.400 SDK 或更新版本。
在 8.0.400 SDK 中,只有在明確選取
dotnet workload
命令時,其才會處於工作負載集更新模式。
「釘選」安裝命令
包含 --version
選項的 dotnet workload install
命令將 install
命令「釘選」到使用指定工作負載集版本的 workload-set
更新模式。
命令不再自動根據鬆散資訊清單安裝最新的工作負載。
若要「釘選」install
命令:
選擇工作負載集版本。 例如:
9.0.100-preview.7.24414.1
。選擇工作負載。 例如:
aspire
。-
dotnet workload install aspire --version 9.0.100-preview.7.24414.1
當這個命令執行時:
- 如果尚未選擇,則會選擇
workload-set
更新模式。 - 它會取得具有指定版本的工作負載集。
- 從工作負載集中,它會獲取指定工作負載的資訊清單版本。
- 它會安裝該工作負載的資訊清單版本。
- 完成後,它會保持在
workload-set
更新模式。
- 如果尚未選擇,則會選擇
選擇要安裝的另一個工作負載,例如
maui-ios
。-
dotnet workload install maui-ios
此命令會使用工作負載集版本的
9.0.100-preview.7.24414.1
工作負載版本來安裝maui-ios
工作負載,因為上述install
命令範例已釘選該工作負載集。
使用 --version
與 install
或 update
,將 install
鎖定到指定版本,但 update
僅設定為 workload-set
更新模式,而不是特定的工作負載集版本。 如果您隨後執行不包含 --version
選項的 dotnet workload update
命令,則 update
命令會:
- 將工作負載更新到最新的可用工作負載集版本。
- 「取消釘選」
install
命令。 - 保持
workload-set
更新模式。
使用最新的工作負載集進行更新
若要將已安裝的工作負載更新到已設定摘要上可用的最新工作負載集版本,請執行以下命令:
-
dotnet workload config --update-mode workload-set
只有在您目前處於處於資訊清單更新模式時,才需要上述命令。 如果您不知道,請檢查目前的更新模式。
-
dotnet workload update
在
workload-set
更新模式下,此命令會將工作負載更新到最新的工作負載集版本,除非您已在 global.json 中指定了工作負載集版本。
更新到工作負載集版本
如果您未在 global.json 中指定工作負載集版本,請使用 update
命令的 --version
選項來指定要更新到的工作負載集版本:
選擇工作負載集版本。 例如:
8.0.400
。-
dotnet workload update --version 8.0.400
如果尚未選擇,系統將會選擇
workload-set
更新模式。
使用 global.json 來指定工作負載集版本
若要使用 global.json
檔案來指定存放庫的工作負載集版本:
選擇工作負載集版本。 例如:
9.0.100-preview.7.24414.1
。建立一個
global.json
檔案,內容如下範例所示:{ "sdk": { "workloadVersion": "9.0.100-preview.7.24414.1" } }
在目前目錄位於同一存放庫中且 CLI 處於 workload-set
更新模式時,install
、update
和 restore
命令會為指定的工作負載集版本安裝工作負載。 如果您沒有global.json檔案,而且處於 workload-set
更新模式, restore
命令會安裝當您從指令清單更新模式 workload-set
切換到更新模式時所建立的工作負載集版本。
如果您在 global.json 檔案中指定了工作負載集版本,即使您沒有執行 config
命令或使用 --version
,工作負載命令仍會處於 workload-set
模式。 global.json 檔案會覆寫這些設定。
若要在該情況下使用 --version
選項,請在不包含 global.json 檔案的路徑外執行該命令。
如果您未在 global.json 中指定工作負載集版本,您可以使用 --version
選項搭配 restore
命令。 在這種情況下,restore
命令會在將工作負載恢復到指定的工作負載集版本之前,選擇 workload-set
更新模式。
在資訊清單更新模式下,restore
會安裝或更新工作負載到每個單獨工作負載的最新版本。
檢查更新模式和版本
若要查看目前的更新模式,請使用沒有參數的 --update-mode
選項執行 config
命令。 模式為 workload-set
或 manifests
。 例如:
dotnet workload config --update-mode
workload-set
若要查看目前的工作負載集版本,請執行 dotnet workload --version
。 如果已安裝工作負載集,您會看到類似於 9.0.100-preview.7.24414.1 或 8.0.402 的版本。 例如:
dotnet workload --version
9.0.100-preview.7.24414.1
在資訊清單模式下,或在切換到 workload-set
更新模式後尚未設定工作負載集版本時,您會看到類似於 <feature band>-manifests.<hash>
的版本。 例如:
dotnet workload --version
9.0.100-manifests.cf958b56
選擇工作負載集版本
工作負載集隨著每次 .NET SDK 的發布而發布到 nuget.org,套件識別碼為 Microsoft.NET.Workloads.<feature band>
。 針對穩定版本的 SDK,一律會有相符的工作負載集版本。 因此 8.0.400 SDK 可以安裝 8.0.400 工作負載集,而 401 可以安裝 401 集合。 一般來說,我們建議您為穩定的 SDK 安裝對應的工作負載集。
對於預覽版本,請在套件的 README 標籤中查找對應的工作負載集版本。例如,請參閱 .NET 9 Preview 7 套件的 README 標籤。
在未來,您將能夠看到工作負載集版本清單及其包含的內容。
忽略工作負載集
若要安裝或更新到設定摘要上每個單獨工作負載的最新版本,請選擇並使用資訊清單更新模式,方法是執行工作負載 config
命令:
dotnet workload config --update-mode manifests
在 .NET 8.0.4xx SDK 中,資訊清單模式是預設模式。 在此版本中,只有在您先前明確選取更新模式時,才需要明確選取 workload-set
指令清單模式。