適用対象: パッケージ使用 • サポートされるバージョン: 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 以降) プライマリ ソースまたは既定のソースでパッケージが見つからない場合にフォールバックとして使用するパッケージ ソースの一覧。 リスト エントリを区切る場合は、セミコロンを使用します。
-ForcePackageReference ベースのプロジェクトでは、最後の復元が成功した場合でも、すべての依存関係が強制的に解決されます。 このフラグの指定は、
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 の最も新しいバージョンが既定値です。
-NoHttpCacheNuGet が http キャッシュ パッケージを使用できないようにします。 グローバル パッケージとキャッシュ フォルダーの管理を参照してください。
-NonInteractiveユーザーによる入力や確認を求めるプロンプトを表示しません。
-OutputDirectoryパッケージのインストール先フィルダーを指定します。 フォルダーが指定されない場合、現在のフォルダーが使用されます。
packages.configまたはPackagesDirectoryを使用しない場合、SolutionDirectoryファイルで復元する場合に必要です。-PackageSaveModeパッケージのインストール後に保存するファイルのタイプ (
nuspec、nupkg、またはnuspec;nupkgのいずれか)を指定します。-PackagesDirectoryOutputDirectoryと同じ。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の出力に表示される詳細の量を指定します。
また、「環境変数」もご覧ください
解説
復元コマンドは次のステップを実行します。
復元コマンドの操作モードを決定します。
projectPath ファイルの種類 Behavior ソリューション(フォルダー) NuGet は .slnファイルを検索し、見つかった場合はそのファイルを使用します。それ以外の場合はエラーになります。(SolutionDir)\.nugetは、開始フォルダーとして使用されます。.slnファイルソリューションによって識別されるパッケージを復元する。 -SolutionDirectoryを使用すると、エラーが発生します。$(SolutionDir)\.nugetは、開始フォルダーとして使用されます。packages.configまたはプロジェクト ファイルファイルに一覧表示されているパッケージを復元し、依存関係を解決してインストールします。 他のファイルの種類 ファイルは上記のような .slnファイルと見なされます。ソリューションでない場合、NuGet はエラーを返します。(projectPath が指定されていません) - NuGet は、現在のフォルダー内のソリューション ファイルを検索します。 1 つのファイルが見つかった場合は、パッケージの復元に使用されます。複数のソリューションが見つかった場合、NuGet によってエラーが発生します。
- ソリューション ファイルがない場合、NuGet は
packages.configを探し、それを使用してパッケージを復元します。 - ソリューションまたは
packages.configファイルが見つからない場合、NuGet はエラーを返します。
次の優先順位を使用してパッケージ フォルダーを決定します (これらのフォルダーが見つからない場合、NuGet によってエラーが発生します)。
-PackagesDirectoryで指定したフォルダー。repositoryPathのNuget.Configの値-SolutionDirectoryで指定されたフォルダー$(SolutionDir)\packages
ソリューションのパッケージを復元する場合、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"