dotnet restoredotnet restore

このトピックの対象: ✓ .NET Core SDK 1.x .NET Core SDK 2.0This topic applies to: ✓ .NET Core SDK 1.x .NET Core SDK 2.0


dotnet restore - プロジェクトの依存関係とツールを復元します。dotnet restore - Restores the dependencies and tools of a project.


dotnet restore [<ROOT>] [--configfile] [--disable-parallel] [--force] [--ignore-failed-sources] [--no-cache] [--no-dependencies] [--packages] [-r|--runtime] [-s|--source] [-v|--verbosity]
dotnet restore [-h|--help]


dotnet restore コマンドでは NuGet を使用して、依存関係と、プロジェクト ファイルに指定されているプロジェクト固有のツールを復元します。The dotnet restore command uses NuGet to restore dependencies as well as project-specific tools that are specified in the project file. 既定では、依存関係とツールの復元は並列に実行されます。By default, the restoration of dependencies and tools are performed in parallel.


.NET Core 2.0 以降、dotnet restore を実行する必要がなくなりました。dotnet newdotnet builddotnet run のような、復元を必要とするあらゆるコマンドによって暗黙的に実行されるためです。Starting with .NET Core 2.0, you don't have to run dotnet restore because it's run implicitly by all commands that require a restore to occur, such as dotnet new, dotnet build and dotnet run. Visual Studio Team Services の継続的インテグレーション ビルドなど、明示的な復元が合理的となる一部のシナリオや、復元の時刻を明示的に制御する必要があるビルド システムでは、引き続き有効なコマンドとなります。It's still a valid command in certain scenarios where doing an explicit restore makes sense, such as continuous integration builds in Visual Studio Team Services or in build systems that need to explicitly control the time at which the restore occurs.

依存関係を復元するには、NuGet で、パッケージを配置するフィードが必要になります。In order to restore the dependencies, NuGet needs the feeds where the packages are located. フィードは、通常、NuGet.config 構成ファイルを通じて提供されます。Feeds are usually provided via the NuGet.config configuration file. 既定の構成ファイルは、CLI ツールがインストールされている場合に提供されます。A default configuration file is provided when the CLI tools are installed. プロジェクト ディレクトリに独自の NuGet.config ファイルを作成して、さらにフィードを指定します。You specify additional feeds by creating your own NuGet.config file in the project directory. コマンド プロンプトで呼び出すごとにフィードをさらに指定することもできます。You also specify additional feeds per invocation at a command prompt.

依存関係については、--packages 引数を使用して、復元操作中に復元されたパッケージの配置場所を指定します。For dependencies, you specify where the restored packages are placed during the restore operation using the --packages argument. 指定されていない場合は、既定の NuGet パッケージ キャッシュが使用されます。これは、すべてのオペレーティング システムのユーザーのホーム ディレクトリ内の .nuget/packages ディレクトリにあります (たとえば、Linux の場合は /home/user1、Windows の場合は C:\Users\user1)。If not specified, the default NuGet package cache is used, which is found in the .nuget/packages directory in the user's home directory on all operating systems (for example, /home/user1 on Linux or C:\Users\user1 on Windows).

プロジェクト固有のツールについては、dotnet restore はまず、ツールがパックされているパッケージを復元し、プロジェクト ファイルに指定されているツールの依存関係の復元に進みます。For project-specific tooling, dotnet restore first restores the package in which the tool is packed, and then proceeds to restore the tool's dependencies as specified in its project file.

Nuget.Config がある場合、dotnet restore コマンドの動作はその設定の一部に影響を受けます。The behavior of the dotnet restore command is affected by some of the settings in the Nuget.Config file, if present. たとえば、NuGet.ConfigglobalPackagesFolder を設定すると、指定されたフォルダーに NuGet パッケージが復元されます。For example, setting the globalPackagesFolder in NuGet.Config places the restored NuGet packages in the specified folder. これは dotnet restore コマンドで --packages オプションを指定する操作の代替方法です。This is an alternative to specifying the --packages option on the dotnet restore command. 詳細については、「NuGet.Config reference」(NuGet.Config リファレンス) を参照してください。For more information, see the NuGet.Config reference.

暗黙的 dotnet restoreImplicit dotnet restore

.NET Core 2.0 より、次のコマンドの発行時に必要な場合、dotnet restore が暗黙的に実行されます。Starting with .NET Core 2.0, dotnet restore is run implicitly if necessary when you issue the following commands:

ほとんどの場合、dotnet restore コマンドを明示的に使用する必要がなくなりました。In most cases, you no longer need to explicitly use the dotnet restore command.

dotnet restore は暗黙的な実行が不便な場合もあります。In some cases, it is inconvenient for dotnet restore to run implicitly. たとえば、ビルド システムなど、一部の自動化されているシステムでは、ネットワーク使用状況を制御できるように、dotnet restore を明示的に呼び出し、復元のタイミングを制御する必要があります。For example, some automated systems, such as build systems, need to call dotnet restore explicitly to control when the restore occurs so that they can control network usage. dotnet restore の暗黙的実行を防ぐために、--no-restore と共にこれらのコマンドのいずれかを使用し、暗黙的復元を無効にできます。To prevent dotnet restore from running implicitly, you can use the --no-restore switch with any of these commands to disable implicit restore.



復元するプロジェクト ファイルへのオプションのパスです。Optional path to the project file to restore.


--configfile <FILE>

復元操作で使用する NuGet 構成ファイル (NuGet.config) です。The NuGet configuration file (NuGet.config) to use for the restore operation.


複数プロジェクトの並行復元を無効にします。Disables restoring multiple projects in parallel.


最後の復元が成功した場合でも、すべての依存関係が強制的に解決されます。Forces all dependencies to be resolved even if the last restore was successful. これは、project.assets.json ファイルを削除する処理に相当します。This is equivalent to deleting the project.assets.json file.


コマンドの短いヘルプを印刷します。Prints out a short help for the command.


バージョン要件を満たしているパッケージがある場合は、失敗したソースに関する警告のみです。Only warn about failed sources if there are packages meeting the version requirement.


パッケージとの HTTP 要求をキャッシュしないように指定します。Specifies to not cache packages and HTTP requests.


プロジェクト間 (P2P) 参照を含むプロジェクトを復元する場合は、参照ではなく、ルート プロジェクトを復元します。When restoring a project with project-to-project (P2P) references, restores the root project and not the references.


復元されるパッケージのディレクトリを指定します。Specifies the directory for restored packages.


パッケージの復元用のランタイムを指定します。Specifies a runtime for the package restore. これは、.csproj ファイルの <RuntimeIdentifiers> タグに明示的にリストされていないランタイムのパッケージを復元するために使用されます。This is used to restore packages for runtimes not explicitly listed in the <RuntimeIdentifiers> tag in the .csproj file. ランタイム ID (RID) の一覧については、RID カタログに関するページをご覧ください。For a list of Runtime Identifiers (RIDs), see the RID catalog. このオプションを複数回指定して、複数の RID を指定します。Provide multiple RIDs by specifying this option multiple times.

-s|--source <SOURCE>

復元操作時に使用する NuGet パッケージのソースを指定します。Specifies a NuGet package source to use during the restore operation. これにより、NuGet.config ファイルに指定されているすべてのソースがオーバーライドされます。This overrides all of the sources specified in the NuGet.config files. このオプションを複数回指定することによって、複数のソースを指定できます。Multiple sources can be provided by specifying this option multiple times.

--verbosity <LEVEL>

コマンドの詳細レベルを設定します。Sets the verbosity level of the command. 指定できる値は、q[uiet]m[inimal]n[ormal]d[etailed]、および diag[nostic] です。Allowed values are q[uiet], m[inimal], n[ormal], d[etailed], and diag[nostic].