パッケージの復元エラーのトラブルシューティングTroubleshooting package restore errors

この記事では、パッケージを復元するときの一般的なエラーと、それを解決する手順に重点を置いて説明しています。This article focuses on common errors when restoring packages and steps to resolve them. パッケージの復元の詳細については、パッケージの復元に関するセクションを参照してください。For complete details on restoring packages, see Package restore.

この記事の手順で問題が解決しない場合は、シナリオをより詳しく検討できるように、GitHub で問題を報告してくださいIf the instructions here do not work for you, please file an issue on GitHub so that we can examine your scenario more carefully. このページに [このページは役に立ちましたか]Do not use the "Is this page helpful?" コントロールが表示されている場合でも使用しないでください。このコントロールでは、お客様に詳細情報を確認することができません。control that may appear on this page because it doesn't give us the ability to contact you for more information.

Visual Studio ユーザー向けの簡単な解決方法Quick solution for Visual Studio users

Visual Studio を使用している場合は、まず次のようにパッケージの復元を有効にします。If you're using Visual Studio, first enable package restore as follows. それ以外の場合は、次のセクションに進みます。Otherwise continue to the sections that follow.

  1. [ツール]、[NuGet パッケージ マネージャー]、[パッケージ マネージャー設定] メニュー コマンドの順に選択します。Select the Tools > NuGet Package Manager > Package Manager Settings menu command.
  2. [パッケージの復元] の両方のオプションをオンにします。Set both options under Package Restore.
  3. [OK] を選択します。Select OK.
  4. プロジェクトをもう一度ビルドします。Build your project again.

[ツール]/[オプション] で NuGet パッケージの復元を有効にする

これらの設定は NuGet.config ファイルで変更することもできます。同意に関するセクションを参照してください。These settings can also be changed in your NuGet.config file; see the consent section.

このプロジェクトは、このコンピューターにはない NuGet パッケージを参照していますThis project references NuGet package(s) that are missing on this computer

詳細なエラー メッセージは次のとおりです。Complete error message:

This project references NuGet package(s) that are missing on this computer.
Use NuGet Package Restore to download them. The missing file is {name}.

このエラーは、ビルドしようとしているプロジェクトに、現在コンピューターまたはプロジェクトにインストールされていない NuGet パッケージへの参照が 1 つ以上含まれている場合に発生します。This error occurs you attempt to build a project that contains references to one or more NuGet packages, but those packages are not presently installed on the computer or in the project.

  • PackageReference 管理形式を使用する場合、このエラーは、「グローバル パッケージとキャッシュ フォルダーの管理」で説明されているように、パッケージが "グローバル パッケージ" フォルダーにインストールされていないことを意味します。When using the PackageReference management format, the error means that the package is not installed in the global-packages folder as described on as described on Managing the global packages and cache folders.
  • packages.config を使用する場合、このエラーは、パッケージがソリューション ルートにある packages フォルダーにインストールされていないことを意味します。When using packages.config, the error means that the package is not installed in the packages folder at the solution root.

このような状況は、ソース管理や別のダウンロードからプロジェクトのソース コードを取得する場合によく発生します。This situation commonly occurs when you obtain the project's source code from source control or another download. パッケージは、nuget.org のようなパッケージ フィードから復元できるので、通常はソース管理やダウンロードから除外されます (パッケージとソース管理に関するページを参照してください)。Packages are typically omitted from source control or downloads because they can be restored from package feeds like nuget.org (see Packages and source control). パッケージを含めると、リポジトリがいっぱいになったり、.zip ファイルが不必要に大きくなったりします。Including them would otherwise bloat the repository or create unnecessarily large .zip files.

このエラーは、プロジェクト ファイルにパッケージの場所の絶対パスが含まれているとき、そのプロジェクトを移動した場合にも発生します。The error can also happen if your project file contains absolute paths to package locations, and you move the project.

パッケージを復元するには、次のいずれかの方法を使用します。Use one of the following methods to restore the packages:

  • プロジェクト ファイルを移動した場合、ファイルを直接編集し、パッケージ参照を更新します。If you've moved the project file, edit the file directly to update the package references.
  • Visual Studio で、[ツール] > [NuGet パッケージ マネージャー] > [パッケージ マネージャー設定] メニュー コマンドを選択し、[パッケージの復元] の両方のオプションをオンにして、[OK] を選択します。In Visual Studio, enable package restore by selecting the Tools > NuGet Package Manager > Package Manager Settings menu command, setting both options under Package Restore, and selecting OK. ソリューションをもう一度ビルドします。Then build the solution again.
  • .NET Core プロジェクトの場合は、dotnet restore または dotnet build (自動的に復元が実行されます) を実行します。For .NET Core projects, run dotnet restore or dotnet build (which automatically runs restore).
  • コマンド ラインで nuget restore を実行します (ただし、dotnet restore を使用する dotnet で作成されたプロジェクトは例外です)。On the command line, run nuget restore (except for projects created with dotnet, in which case use dotnet restore).
  • PackageReference 形式を使用するプロジェクトのコマンド ラインで、msbuild /t:restore を実行します。On the command line with projects using the PackageReference format, run msbuild /t:restore.

復元に成功したら、"グローバル パッケージ" フォルダーにパッケージが表示されます。After a successful restore, the package should be present in the global-packages folder. PackageReference を使用するプロジェクトの場合、復元によって obj/project.assets.json ファイルが再び作成されます。packages.config を使用するプロジェクトの場合、プロジェクトの packages フォルダーにパッケージが表示されます。For projects using PackageReference, a restore should recreate the obj/project.assets.json file; for projects using packages.config, the package should appear in the project's packages folder. この場合、プロジェクトを正常にビルドできるようになります。The project should now build successfully. ビルドできない場合は、フォローを受けられるように GitHub で問題を報告してくださいIf not, file an issue on GitHub so we can follow up with you.

資産ファイル project.assets.json が見つかりませんAssets file project.assets.json not found

詳細なエラー メッセージは次のとおりです。Complete error message:

Assets file '<path>\project.assets.json' not found. Run a NuGet package restore to generate this file.

PackageReference 管理形式を使用する場合、project.assets.json ファイルによってプロジェクトの依存関係グラフが保持されます。このグラフを使用して、必要なパッケージがすべてコンピューターにインストールされていることを確認します。The project.assets.json file maintains a project's dependency graph when using the PackageReference management format, which is used to make sure that all necessary packages are installed on the computer. このファイルはパッケージの復元を通じて動的に生成されるため、通常はソース管理に追加されません。Because this file is generated dynamically through package restore, it's typically not added to source control. その結果、自動的にパッケージを復元しない msbuild などのツールでプロジェクトをビルドすると、このエラーが発生します。As a result, this error occurs when building a project with a tool such as msbuild that does not automatically restore packages.

この場合、msbuild /t:restore の後に msbuild を実行するか、dotnet build を使用します (これでパッケージが自動的に復元されます)。In this case, run msbuild /t:restore followed by msbuild, or use dotnet build (which restores packages automatically). また、前のセクションのいずれかの方法を使用してパッケージを復元することもできます。You can also use any of the package restore methods in the previous section.

詳細なエラー メッセージは次のとおりです。Complete error message:

One or more NuGet packages need to be restored but couldn't be because consent has
not been granted. To give consent, open the Visual Studio Options dialog, click on
the NuGet Package Manager node and check 'Allow NuGet to download missing packages
during build.' You can also give consent by setting the environment variable
'EnableNuGetPackageRestore' to 'true'. Missing packages: {name}

このエラーは、NuGet の構成でパッケージの復元が無効になっていることを示します。This error indicates that package restore is disabled in your NuGet configuration.

Visual Studio ユーザー向けの簡単な解決方法」で前述したように、Visual Studio で該当する設定を変更できます。You can change the applicable settings in Visual Studio as described earlier under Quick solution for Visual Studio users.

これらの設定は、該当する nuget.config ファイル (通常、Windows では %AppData%\NuGet\NuGet.Config、Mac/Linux では ~/.nuget/NuGet/NuGet.Config) で直接編集することもできます。You can also edit these settings directly in the applicable nuget.config file (typically %AppData%\NuGet\NuGet.Config on Windows and ~/.nuget/NuGet/NuGet.Config on Mac/Linux). packageRestoreenabled キーと automatic キーが True に設定されていることを確認します。Make sure the enabled and automatic keys under packageRestore are set to True:

<!-- Package restore is enabled -->
<configuration>
    <packageRestore>
        <add key="enabled" value="True" />
        <add key="automatic" value="True" />
    </packageRestore>
</configuration>

重要

nuget.configpackageRestore 設定を直接編集する場合は、オプションのダイアログ ボックスに現在の値が表示されるように Visual Studio を再起動します。If you edit the packageRestore settings directly in nuget.config, restart Visual Studio so that the options dialog box shows the current values.

その他の考えられる条件Other potential conditions

  • ファイルが見つからないため、NuGet の復元を使用してダウンロードするというメッセージのビルド エラーが発生することがあります。You may encounter build errors due to missing files, with a message saying to use NuGet restore to download them. ただし、復元を実行すると、"すべてのパッケージは既にインストールされており、復元するものはありません" と表示されることがあります。However, running a restore might say, "All packages are already installed and there is nothing to restore." この場合は、packages フォルダー (packages.config の使用時) または obj/project.assets.json ファイル (PackageReference の使用時) を削除し、復元を実行し直してください。In this case, delete the packages folder (when using packages.config) or the obj/project.assets.json file (when using PackageReference) and run restore again. エラーが引き続き発生する場合は、コマンドラインから nuget locals all -clear または dotnet locals all --clear を使用して、「グローバル パッケージとキャッシュ フォルダーの管理」で説明されているように、"グローバル パッケージ" フォルダーとキャッシュ フォルダーをクリアします。If the error still persists, use nuget locals all -clear or dotnet locals all --clear from the command line to clear the global-packages and cache folders as described on Managing the global packages and cache folders.

  • ソース管理からプロジェクトを取得するときに、プロジェクト フォルダーが読み取り専用に設定されている可能性があります。When obtaining a project from source control, your project folders may be set to read-only. フォルダーのアクセス許可を変更し、パッケージの復元を実行し直してください。Change the folder permissions and try restoring packages again.

  • 古いバージョンの NuGet を使用している可能性があります。You may be using an old version of NuGet. 最新の推奨バージョンについては、nuget.org/downloads を確認してください。Check nuget.org/downloads for the latest recommended versions. Visual Studio 2015 の場合は、3.6.0 をお勧めします。For Visual Studio 2015, we recommend 3.6.0.

他の問題が発生している場合、詳細を確認できるように GitHub で問題を報告してくださいIf you encounter other problems, file an issue on GitHub so we can get more details from you.