共用方式為


.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 命令:

  1. 選擇工作負載集版本。 例如: 9.0.100-preview.7.24414.1

  2. 選擇工作負載。 例如: aspire

  3. dotnet workload install aspire --version 9.0.100-preview.7.24414.1
    

    當這個命令執行時:

    • 如果尚未選擇,則會選擇 workload-set 更新模式。
    • 它會取得具有指定版本的工作負載集。
    • 從工作負載集中,它會獲取指定工作負載的資訊清單版本。
    • 它會安裝該工作負載的資訊清單版本。
    • 完成後,它會保持在 workload-set 更新模式。
  4. 選擇要安裝的另一個工作負載,例如 maui-ios

  5. dotnet workload install maui-ios
    

    此命令會使用工作負載集版本的9.0.100-preview.7.24414.1工作負載版本來安裝maui-ios工作負載,因為上述install命令範例已釘選該工作負載集。

使用 --versioninstallupdate,將 install 鎖定到指定版本,但 update 僅設定為 workload-set 更新模式,而不是特定的工作負載集版本。 如果您隨後執行不包含 --version 選項的 dotnet workload update 命令,則 update 命令會:

  • 將工作負載更新到最新的可用工作負載集版本。
  • 「取消釘選」install 命令。
  • 保持 workload-set 更新模式。

使用最新的工作負載集進行更新

若要將已安裝的工作負載更新到已設定摘要上可用的最新工作負載集版本,請執行以下命令:

  1. dotnet workload config --update-mode workload-set
    

    只有在您目前處於處於資訊清單更新模式時,才需要上述命令。 如果您不知道,請檢查目前的更新模式

  2. dotnet workload update
    

    workload-set 更新模式下,此命令會將工作負載更新到最新的工作負載集版本,除非您已在 global.json 中指定了工作負載集版本。

更新到工作負載集版本

如果您未在 global.json 中指定工作負載集版本,請使用 update 命令的 --version 選項來指定要更新到的工作負載集版本:

  1. 選擇工作負載集版本。 例如: 8.0.400

  2. dotnet workload update --version 8.0.400
    

    如果尚未選擇,系統將會選擇 workload-set 更新模式。

使用 global.json 來指定工作負載集版本

若要使用 global.json 檔案來指定存放庫的工作負載集版本:

  1. 選擇工作負載集版本。 例如: 9.0.100-preview.7.24414.1

  2. 建立一個 global.json 檔案,內容如下範例所示:

    {
      "sdk": {
        "workloadVersion": "9.0.100-preview.7.24414.1"
      }
    }
    

在目前目錄位於同一存放庫中且 CLI 處於 workload-set 更新模式時,installupdaterestore 命令會為指定的工作負載集版本安裝工作負載。 如果您沒有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-setmanifests。 例如:

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 指令清單模式。