次の方法で共有


.NET SDK ワークロード セット

ワークロード セット機能は、.NET SDK ワークロードのグループを表すバージョン番号を提供します。 installupdaterestore の各コマンドでは、workload-set 更新モードでこの番号を使用して次のメリットを実現します。

  • インストールされているワークロード バージョンの変更頻度を制御する。 ワークロード セットを使用しない別の操作モードは、ルーズ マニフェスト更新モードと呼ばれています。 このモードでは、個々のワークロードの新しいバージョンが構成済みの NuGet フィードにリリースされると、ワークロードが自動的に更新されます。 workload-set 更新モードでは、そのバージョンを明示的に変更するまで、ワークロードは特定のワークロード セット バージョンにとどまります。
  • 同時にリリースされ、連携することがわかっているワークロード バージョンの組み合わせをインストールして更新できます。
  • チームの全員が常に同じワークロード バージョンで作業する環境を実現できます。
  • ロールバック ファイルを使用して、使用するワークロードのバージョンを指定する必要はありません。

ワークロード セットの用途は次のとおりです。

  • install コマンドを特定のワークロード セット バージョンに固定する。
  • インストールされているワークロードを、使用可能な最新のワークロード セット バージョンに更新する。
  • 指定したワークロード セット バージョンに更新する。
  • global.json でワークロード セット バージョンを指定する。
  • 現在の更新モードとワークロード セット バージョンを確認する。

ワークロード セットを無視して、個々のワークロードの最新バージョンをインストール、更新、または復元することもできます。

前提条件

  • .NET 8.0.400 SDK 以降

    8.0.400 SDK では、明示的に選択されている場合にのみ、dotnet workload コマンドがワークロード セットの更新モードになります。

インストール コマンドの固定

--version オプションを指定した dotnet workload install コマンドでは、指定したワークロード セット バージョンで workload-set 更新モードの install コマンドを固定します。 このコマンドでは、ルース マニフェストに基づいて最新のワークロードが自動的にインストールされなくなります。

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
    

    前の install コマンドの例でそのワークロード セットを固定したため、このコマンドでは、ワークロード セット バージョン 9.0.100-preview.7.24414.1 のワークロード バージョンを使用して maui-ios ワークロードをインストールします。

--versioninstall または update と併用すると 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 でワークロード セット バージョンを指定しない場合は、restore コマンドで --version オプションを使用できます。 その場合、restore コマンドは、ワークロードを指定されたワークロード セット バージョンに復元する前に workload-set 更新モードを選択します。

マニフェスト更新モードでは、 restore が個々のワークロードの最新バージョンにワークロードをインストールまたは更新します。

更新モードとバージョンを確認する

現在の更新モードを表示するには、引数を指定せずに --update-mode オプションで config コマンドを実行します。 モードはワークロード セットとマニフェストのいずれかです。 次に例を示します。

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

ワークロード セット バージョンを選択する

ワークロード セットは、パッケージ ID Microsoft.NET.Workloads.<feature band>の下で、.NET SDK の各リリースで nuget.org に発行されます。 安定バージョンの 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 更新モードを明示的に選択した場合のみです。