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

この記事では、パッケージを復元するときの一般的なエラーと、それを解決する手順に重点を置いて説明しています。This article focuses on common errors when restoring packages and steps to resolve them.

[パッケージの復元] では、プロジェクト ファイル ( .csproj) のパッケージ参照か packages.config ファイルに一致する正しい状態になるよう、すべてのパッケージの依存関係のインストールを試みます。Package Restore tries to install all package dependencies to the correct state matching the package references in your project file (.csproj) or your packages.config file. (Visual Studio では、参照は [依存関係] \ [NuGet] または [参照] ノードの下にあるソリューション エクスプローラーに表示されます。)パッケージを復元するために必要な手順に従うには、「パッケージの復元」をご覧ください。(In Visual Studio, the references appear in Solution Explorer under the Dependencies \ NuGet or the References node.) To follow the required steps to restore packages, see Restore packages. プロジェクト ファイル ( .csproj) のパッケージ参照、または packages.config ファイルが正しくない ([パッケージの復元] 後に必要な状態と一致しない) 場合は、パッケージの復元を使う代わりにパッケージをインストールまたは更新する必要があります。If the package references in your project file (.csproj) or your packages.config file are incorrect (they do not match your desired state following Package Restore), then you need to either install or update packages instead of using 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. ご自身のプロジェクトが、MSBuild に統合されたパッケージの復元を使用する以前のプロジェクトであった場合は、パッケージの自動復元に移行することが必要になる場合があります。If your project is an older project that uses the MSBuild-integrated package restore, you may need to migrate to automatic package restore.

このプロジェクトは、このコンピューターにはない 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 when 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.

このような状況は、ソース管理や別のダウンロードからプロジェクトのソース コードを取得する場合によく発生します。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:

復元に成功したら、"グローバル パッケージ" フォルダーにパッケージが表示されます。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 nuget locals all --clear を使用して、「グローバル パッケージとキャッシュ フォルダーの管理」で説明されているように、"グローバル パッケージ" フォルダーとキャッシュ フォルダーをクリアします。If the error still persists, use nuget locals all -clear or dotnet nuget 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.