次の方法で共有


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

この記事では、パッケージを復元するときの一般的なエラーと、それらを解決する手順について説明します。

パッケージの復元では、プロジェクト ファイル (.csproj) またはpackages.configファイル内のパッケージ参照と一致する正しい状態にすべてのパッケージ依存関係のインストールが試 られます。 (Visual Studio では、参照はソリューション エクスプローラーの [依存関係] \ [NuGet ] ノードまたは [ 参照 ] ノードの下に表示されます)。必要な手順に従ってパッケージを復元するには、「パッケージの 復元」を参照してください。 プロジェクト ファイル (.csproj) または packages.config ファイル内のパッケージ参照が正しくない (パッケージの復元後に目的の状態と一致しない) 場合は、パッケージの復元を使用するのではなく、パッケージをインストールまたは更新する必要があります。

ここでの手順がうまくいかない場合は、 GitHub に問題を提出して 、シナリオをより慎重に確認できるようにしてください。 このページに表示される可能性がある「このページは役に立ちますか」コントロールは、こちらからご連絡を差し上げることができませんので、使用しないでください。

Visual Studio ユーザー向けのクイック ソリューション

Visual Studio を使用している場合は、最初に次のようにパッケージの復元を有効にします。 それ以外の場合は、以降のセクションに進みます。

  1. [ ツール] > [NuGet パッケージ マネージャー] > [パッケージ マネージャーの設定] メニュー コマンドを選択します。
  2. [ パッケージの復元] で両方のオプションを設定します。
  3. [OK] を選択.
  4. プロジェクトをもう一度ビルドします。

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

これらの設定は、 NuGet.Config ファイルで変更することもできます。 同意 セクションを参照してください。 プロジェクトが MSBuild 統合パッケージ復元を使用する古いプロジェクトの場合は、パッケージの自動復元に 移行 することが必要になる場合があります。

このプロジェクトは、このコンピューターに存在しない NuGet パッケージを参照します

完全なエラー メッセージ:

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

このエラーは、1 つ以上の NuGet パッケージへの参照を含むプロジェクトをビルドしようとしても、それらのパッケージが現在コンピューターまたはプロジェクトにインストールされていない場合に発生します。

  • PackageReference 管理形式を使用する場合、このエラーは、packages.config から PackageReference への移行で残っている可能性があり、プロジェクト ファイルから手動で削除する必要があります。
  • packages.configを使用する場合、エラーは、ソリューション ルートの packages フォルダーにパッケージがインストールされていないことを意味します。

この状況は、通常、ソース管理または別のダウンロードからプロジェクトのソース コードを取得するときに発生します。 パッケージは通常、nuget.org などのパッケージ フィードから復元できるため、ソース管理またはダウンロードから省略されます ( パッケージとソース管理を参照)。 これを含めると、リポジトリが肥大化したり、不必要に大きな .zip ファイルが作成されたりします。

このエラーは、プロジェクト ファイルにパッケージの場所への絶対パスが含まれており、プロジェクトを移動した場合にも発生する可能性があります。

パッケージを復元するには、次のいずれかの方法を使用します。

復元が成功した後、パッケージは グローバル パッケージ フォルダーに存在する必要があります。 PackageReference を使用するプロジェクトの場合、復元では obj/project.assets.json ファイルを再作成する必要があります。 packages.configを使用するプロジェクトの場合、パッケージはプロジェクトの packages フォルダーに表示されます。 これで、プロジェクトが正常にビルドされます。 そうでない場合は、 GitHub で問題を報告 して、フォローアップできるようにします。

アセット ファイル project.assets.json 見つかりません

完全なエラー メッセージ:

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

packageReference 管理形式を使用する場合、 project.assets.json ファイルはプロジェクトの依存関係グラフを保持します。これは、必要なすべてのパッケージがコンピューターにインストールされていることを確認するために使用されます。 このファイルはパッケージの復元によって動的に生成されるため、通常はソース管理には追加されません。 その結果、パッケージを自動的に復元しない msbuild などのツールを使用してプロジェクトをビルドするときに、このエラーが発生します。

この場合は、 msbuild -t:restore 実行し、その後に msbuildを実行するか、 dotnet build (パッケージを自動的に復元する) を使用します。 前のセクションのパッケージ復元方法を使用することもできます。

完全なエラー メッセージ:

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 構成でパッケージの復元が無効になっていることを示します。

Visual Studio ユーザー向けのクイック ソリューションで前述したように、Visual Studio で該当する設定を変更できます。

これらの設定は、該当するnuget.config ファイル (通常は Windows と Mac/Linux %AppData%\NuGet\NuGet.Config~/.nuget/NuGet/NuGet.Config) で直接編集することもできます。 enabledautomaticキーとpackageRestore キーが True に設定されていることを確認します。

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

Important

packageRestorenuget.config設定を直接編集する場合は、Visual Studio を再起動して、オプション ダイアログ ボックスに現在の値が表示されるようにします。

その他の潜在的な条件

  • ファイルが見つからないためにビルド エラーが発生する場合があり、NuGet 復元を使用してダウンロードすることを示すメッセージが表示されます。 ただし、復元を実行すると、"すべてのパッケージが既にインストールされており、復元するものがない" と表示されることがあります。この場合は、 packages フォルダー ( packages.config を使用している場合) または obj/project.assets.json ファイル (PackageReference を使用している場合) を削除し、復元を再度実行します。 それでもエラーが解決しない場合は、「nuget locals all -clearとキャッシュ フォルダーの管理」の説明に従って、コマンド ラインからdotnet nuget locals all --clearまたはを使用してグローバル パッケージとキャッシュ フォルダーをクリアします

  • ソース管理からプロジェクトを取得する場合、プロジェクト フォルダーが読み取り専用に設定される場合があります。 フォルダーのアクセス許可を変更し、パッケージの復元をもう一度試してください。

  • 古いバージョンの NuGet を使用している可能性があります。 最新の推奨バージョンについては 、nuget.org/downloads を確認してください。 Visual Studio 2015 では、3.6.0 をお勧めします。

他の問題が発生した場合は、 GitHub に問題を提出 して、より詳細な情報を得ることができます。