復元コマンド (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
パッケージのインストール後に保存するファイルのタイプ (
nuspec
、nupkg
、または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
の出力に表示される詳細の量を指定します。
また、「環境変数」もご覧ください
解説
復元コマンドは次のステップを実行します。
復元コマンドの操作モードを決定します。
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"