dotnet restore

この記事の対象: ✔️ .NET Core 3.1 SDK 以降のバージョン

名前

dotnet restore - プロジェクトの依存関係とツールを復元します。

構文

dotnet restore [<ROOT>] [--configfile <FILE>] [--disable-parallel]
    [-f|--force] [--force-evaluate] [--ignore-failed-sources]
    [--interactive] [--lock-file-path <LOCK_FILE_PATH>] [--locked-mode]
    [--no-cache] [--no-dependencies] [--packages <PACKAGES_DIRECTORY>]
    [-r|--runtime <RUNTIME_IDENTIFIER>] [-s|--source <SOURCE>]
    [--use-lock-file] [-v|--verbosity <LEVEL>]

dotnet restore -h|--help

説明

dotnet restore コマンドでは NuGet を使用して、依存関係と、プロジェクト ファイルに指定されているプロジェクト固有のツールを復元します。 ほとんどの場合、次のコマンドを実行すると、必要に応じて NuGet の復元が暗黙的に実行されるため、dotnet restore コマンドを明示的に使用する必要はありません。

場合によっては、これらのコマンドを使用して NuGet の暗黙的な復元を実行するのが不便なことがあります。 たとえば、ビルド システムなど、一部の自動化されているシステムでは、ネットワーク使用状況を制御できるように、dotnet restore を明示的に呼び出し、復元のタイミングを制御する必要があります。 NuGet の暗黙的な復元が行われないようにするには、--no-restore フラグと共にこれらのコマンドのいずれかを使用し、暗黙的復元を無効にします。

注意

復元操作中の署名付きパッケージの検証には、コード署名とタイムスタンプの両方に有効な証明書ルート ストアが必要です。 詳細については、「 NuGet 署名付きパッケージの検証 」を参照してください。

フィードを指定する

依存関係を復元するには、NuGet で、パッケージを配置するフィードが必要になります。 フィードは、通常、"nuget.config" 構成ファイルを通じて提供されます。 既定の構成ファイルは、.NET SDK がインストールされている場合に提供されます。 追加のフィードを指定するには、次のいずれかの操作を行います。

-s オプションを使用して nuget.config フィードをオーバーライドできます。

認証済みフィードの使用方法の詳細については、「認証済みフィードからのパッケージの使用」をご覧ください。

グローバル パッケージ フォルダー

依存関係については、--packages 引数を使用して復元操作中に復元されたパッケージの配置場所を指定することができます。 指定されていない場合は、既定の NuGet パッケージ キャッシュが使用されます。これは、すべてのオペレーティング システムのユーザーのホーム ディレクトリ内の .nuget/packages ディレクトリにあります。 たとえば、Linux の場合は /home/user1、Windows の場合は C:\Users\user1 です。

プロジェクト固有のツール

プロジェクト固有のツールについては、dotnet restore はまず、ツールがパックされているパッケージを復元し、プロジェクト ファイルに指定されているツールの依存関係の復元に進みます。

nuget.config の相違点

"nuget.config" がある場合、dotnet restore コマンドの動作はその設定に影響を受けます。 たとえば、"nuget.config" に globalPackagesFolder を設定すると、指定されたフォルダーに NuGet パッケージが復元されます。 これは dotnet restore コマンドで --packages オプションを指定する操作の代替方法です。 詳細については、「nuget の .config リファレンス」を参照してください。

dotnet restore によって無視される、特定の設定が 3 つあります。

  • bindingRedirects

    バインド リダイレクトは、<PackageReference> 要素では機能しません。また、.NET は、NuGet パッケージの <PackageReference> 要素のみをサポートしています。

  • solution

    これは、Visual Studio 固有の設定であり、.NET には適用されません。 .NET では、packages.config ファイルを使用しない代わりに NuGet パッケージの <PackageReference> 要素を使用します。

  • trustedSigners

    .NET 5.0.100 SDK では、クロスプラットフォーム パッケージの署名の検証のサポートが追加されました。

ワークロード マニフェストのダウンロード

このコマンドを実行すると、ワークロードの広告マニフェストの非同期バックグラウンド ダウンロードが開始されます。 このコマンドが終了してもダウンロードが実行されている場合、ダウンロードは停止します。 詳細については、「広告マニフェスト」を参照してください。

引数

  • ROOT

    復元するプロジェクト ファイルへのオプションのパスです。

オプション

  • --configfile <FILE>

    使用する NuGet 構成ファイル (nuget.config)。 指定した場合、このファイルの設定のみが使用されます。 指定しない場合、現在のディレクトリからの構成ファイルの階層が使用されます。 詳細については、「一般的な NuGet 構成」をご覧ください。

  • --disable-parallel

    複数プロジェクトの並行復元を無効にします。

  • --force

    最後の復元が成功した場合でも、すべての依存関係が強制的に解決されます。 このフラグを指定することは、project.assets.json ファイルを削除することと同じです。

  • --force-evaluate

    ロック ファイルが既に存在する場合でも、すべての依存関係を再評価するように強制的に復元します。

  • -?|-h|--help

    コマンドの使用方法を示した説明を出力します。

  • --ignore-failed-sources

    バージョン要件を満たしているパッケージがある場合は、失敗したソースに関する警告のみです。

  • --interactive

    コマンドを停止して、ユーザーの入力または操作のために待機させることができます。 たとえば、認証を完了する場合があります。

  • --lock-file-path <LOCK_FILE_PATH>

    プロジェクトのロック ファイルの書き込み先である出力場所。 既定でこれは PROJECT_ROOT\packages.lock.json です。

  • --locked-mode

    プロジェクト ロック ファイルの更新は許可されません。

  • --no-cache

    HTTP 要求をキャッシュしないように指定します。

  • --no-dependencies

    プロジェクト間 (P2P) 参照を含むプロジェクトを復元する場合は、参照ではなく、ルート プロジェクトを復元します。

  • --packages <PACKAGES_DIRECTORY>

    復元されるパッケージのディレクトリを指定します。

  • -r|--runtime <RUNTIME_IDENTIFIER>

    パッケージの復元用のランタイムを指定します。 これは、 .csproj ファイルの <RuntimeIdentifiers> タグに明示的にリストされていないランタイムのパッケージを復元するために使用されます。 ランタイム ID (RID) の一覧については、RID カタログに関するページをご覧ください。

  • -s|--source <SOURCE>

    復元操作時に使用する NuGet パッケージ ソースの URI を指定します。 この設定により、"nuget.config" ファイルに指定されているすべてのソースがオーバーライドされます。 このオプションを複数回指定することによって、複数のソースを指定できます。

  • --use-lock-file

    プロジェクト ロック ファイルを生成して復元で使用できるようにします。

  • -v|--verbosity <LEVEL>

    コマンドの詳細レベルを設定します。 指定できる値は、q[uiet]m[inimal]n[ormal]d[etailed]、および diag[nostic] です。 既定値は、minimal です。 詳細については、「LoggerVerbosity」を参照してください。

使用例

  • 現在のディレクトリでプロジェクトの依存関係とツールを復元します。

    dotnet restore
    
  • 指定されたパスで見つかった app1 プロジェクトの依存関係とツールを復元します。

    dotnet restore ./projects/app1/app1.csproj
    
  • ソースとして指定されたファイル パスを使用して、現在のディレクトリでプロジェクトの依存関係とツールを復元します。

    dotnet restore -s c:\packages\mypackages
    
  • ソースとして指定された 2 つのファイル パスを使用して、現在のディレクトリでプロジェクトの依存関係とツールを復元します。

    dotnet restore -s c:\packages\mypackages -s c:\packages\myotherpackages
    
  • 詳細な出力を示して、現在のディレクトリでプロジェクトの依存関係とツールを復元します。

    dotnet restore --verbosity detailed