復元コマンド (NuGet CLI)

適用対象: パッケージ使用 • サポートされるバージョン: 2.7 以降

フォルダーに存在しないパッケージをダウンロードして packages インストールします。 NuGet 4.0 以降と PackageReference 形式で使用すると、必要に応じて <project>.nuget.props ファイルが obj フォルダーに生成されます。 (ファイルはソース管理から省略できます。)

Mac OSX と Linux と CLI on Mono では、PackageReference ではパッケージの復元はサポートされていません。

使用方法

nuget restore <projectPath> [options]

ここで、<projectPath> はソリューションまたは packages.config ファイルの場所を指定します。 動作の詳細については 、以下の「備考」を参照してください。

[オプション]

  • -ConfigFile

    適用する NuGet 構成ファイル。 指定しない場合は、%AppData%\NuGet\NuGet.Config (Windows)、~/.nuget/NuGet/NuGet.Config または ~/.config/NuGet/NuGet.Config (Mac/Linux) が使用されます。

  • -DirectDownload

    (4.0 以降) バイナリまたはメタデータをキャッシュに設定せずにパッケージを直接ダウンロードします。

  • -DisableParallelProcessing

    複数のパッケージの並行復元を無効にします。

  • -FallbackSource

    (3.2 以降) プライマリ ソースまたは既定のソースでパッケージが見つからない場合にフォールバックとして使用するパッケージ ソースの一覧。 リスト エントリを区切る場合は、セミコロンを使用します。

  • -Force

    PackageReference ベースのプロジェクトでは、最後の復元が成功した場合でも、すべての依存関係が強制的に解決されます。 このフラグの指定は、project.assets.json ファイルの削除と似ています。 これは http キャッシュをバイパスしません。

  • -ForceEnglishOutput

    (3.5 以降) インバリアントの英語ベースのカルチャを使用して、nuget.exe の実行を強制します。

  • -ForceEvaluate

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

  • -?|-help

    コマンドのヘルプ情報を出力します。

  • -LockFilePath

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

  • -LockedMode

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

  • -MSBuildPath

    (4.0 以降) コマンドで使用する MSBuild のパスを指定します。-MSBuildVersion よりも優先されます。

  • -MSBuildVersion

    (3.2 以降) このコマンドで使用する MSBuild のバージョンを指定します。 サポートされる値は、4、12、14、15.1、15.3、15.4、15.5、15.6、15.7、15.8、15.9 です。 既定では、パス内の MSBuild が選択されます。それ以外の場合は、インストールされている MSBuild の最も新しいバージョンが既定値です。

  • -NoHttpCache

    NuGet が http キャッシュ パッケージを使用できないようにします。 グローバル パッケージとキャッシュ フォルダーの管理を参照してください。

  • -NonInteractive

    ユーザーによる入力や確認を求めるプロンプトを表示しません。

  • -OutputDirectory

    パッケージのインストール先フィルダーを指定します。 フォルダーが指定されない場合、現在のフォルダーが使用されます。 packages.config または PackagesDirectory を使用しない場合、SolutionDirectory ファイルで復元する場合に必要です。

  • -PackageSaveMode

    パッケージのインストール後に保存するファイルのタイプ (nuspecnupkg、または nuspec;nupkg のいずれか)を指定します。

  • -PackagesDirectory

    OutputDirectory と同じ。 packages.config または OutputDirectory を使用しない場合、SolutionDirectory ファイルで復元する場合に必要です。

  • -Project2ProjectTimeOut

    プロジェクト間参照を解決するためのタイムアウト (秒単位)。

  • -Recursive

    (4.0 以降) UWP プロジェクトと .NET Core プロジェクトのすべての参照プロジェクトを復元します。 packages.config を使用するプロジェクトには適用されません。

  • -RequireConsent

    パッケージをダウンロードしてインストールする前に、パッケージの復元が有効になっていることを確認します。 詳細については、「パッケージの復元」を参照してください。

  • -SolutionDirectory

    ソリューション フォルダーを指定します。 ソリューションのパッケージを復元するときに無効です。 packages.config または PackagesDirectory を使用しない場合、OutputDirectory ファイルで復元する場合に必要です。

  • -Source

    復元に使用するパッケージ ソースのリストを (URL として) 指定します。 省略した場合、コマンドは構成ファイルで提供されるソースを使用します。「NuGet の動作の構成」を参照してください。 リスト エントリを区切る場合は、セミコロンを使用します。

  • -UseLockFile

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

  • -Verbosity [normal|quiet|detailed]

    normal (デフォルト)、quiet、あるいは detailed の出力に表示される詳細の量を指定します。

また、「環境変数」もご覧ください

解説

復元コマンドは次のステップを実行します。

  1. 復元コマンドの操作モードを決定します。

    projectPath ファイルの種類 Behavior
    ソリューション(フォルダー) NuGet は .sln ファイルを検索し、見つかった場合はそのファイルを使用します。それ以外の場合はエラーになります。 (SolutionDir)\.nuget は、開始フォルダーとして使用されます。
    .sln ファイル ソリューションによって識別されるパッケージを復元する。-SolutionDirectory を使用すると、エラーが発生します。 $(SolutionDir)\.nuget は、開始フォルダーとして使用されます。
    packages.config またはプロジェクト ファイル ファイルに一覧表示されているパッケージを復元し、依存関係を解決してインストールします。
    他のファイルの種類 ファイルは上記のような .sln ファイルと見なされます。ソリューションでない場合、NuGet はエラーを返します。
    (projectPath が指定されていません)
    • NuGet は、現在のフォルダー内のソリューション ファイルを検索します。 1 つのファイルが見つかった場合は、パッケージの復元に使用されます。複数のソリューションが見つかった場合、NuGet によってエラーが発生します。
    • ソリューション ファイルがない場合、NuGet は packages.config を探し、それを使用してパッケージを復元します。
    • ソリューションまたは packages.config ファイルが見つからない場合、NuGet はエラーを返します。
  2. 次の優先順位を使用してパッケージ フォルダーを決定します (これらのフォルダーが見つからない場合、NuGet によってエラーが発生します)。

    • -PackagesDirectory で指定したフォルダー。
    • repositoryPathNuget.Config の値
    • -SolutionDirectory で指定されたフォルダー
    • $(SolutionDir)\packages
  3. ソリューションのパッケージを復元する場合、NuGet は次の処理を行います。

    • ソリューション ファイルを読み込みます。
    • $(SolutionDir)\.nuget\packages.config にリストされているソリューション レベルのパッケージを packages フォルダーに復元します。
    • $(ProjectDir)\packages.config にリストされているパッケージを packages フォルダーに復元します。 -DisableParallelProcessing が指定されていない限り、指定されたパッケージごとにパッケージを並行して復元します。

# Restore packages for a solution file
nuget restore a.sln

# Restore packages for a solution file, using MSBuild version 14.0 to load the solution and its project(s)
nuget restore a.sln -MSBuildVersion 14

# Restore packages for a project's packages.config file, with the packages folder at the parent
nuget restore proj1\packages.config -PackagesDirectory ..\packages

# Restore packages for the solution in the current folder, specifying package sources
nuget restore -source "https://api.nuget.org/v3/index.json;https://www.myget.org/F/nuget"