Share via


インストールされているパッケージのトラブルシューティング

特定のパッケージがどのソースからインストールされたかを確認したい場合があります。 ここでは、いくつかの確認方法を示します。

Note

一部のパッケージ ソースでは、アップストリーム ソースと呼ばれる概念がサポートされています。 たとえば、Azure Artifacts アップストリーム ソースです。 NuGet クライアントでは、パッケージがアップストリーム ソースからのものであるかどうかが認識されません。 そのため、パッケージ ソースのログ記録には、アップストリーム ソースではなく、構成されているソースが記載されます。

グローバル パッケージ フォルダー内の .nupkg.metadata ファイル

パッケージが global-packages フォルダーに抽出されるときに、ファイル .nupkg.metadata が書き込まれます。 NuGet 5.9.0 から、NuGet ではパッケージ ソースが追加されます。 NuGet のバージョンを Visual Studio または .NET SDK のバージョンにマップするには、以下を参照してください。 次に例を示します。

{
  "version": 2,
  "contentHash": "bw3R9q8cVNhWXNpnvWb0OGP4HadS4zvClq+T1zf7AF+tLY1haZ2AvbHidQekf4PDv1T40c6brZeT/V0IBq7cEQ==",
  "source": "https://api.nuget.org/v3/index.json"
}

Note

NuGet 5.9.0 を持つ新しいバージョンのツールにアップグレードする前に抽出したパッケージが global-packages フォルダーにある場合、.nupkg.metadata ファイルはバージョン 1 になり、パッケージ ソースは含まれません。 global-packages フォルダーをクリアして、すべてのパッケージにパッケージ ソースが含まれるようにすることができます。

ヒント

NuGet によって .nupkg.metadata ファイルが書き込まれるのは、global-packages フォルダーに対してのみです。 packages.config を使用するプロジェクトではソリューション パッケージ フォルダーが使用されますが、.nupkg.metadata ファイルは作成されません。

インストールされたパッケージのログ メッセージ

NuGet 5.9.0 から、NuGet では、パッケージがインストールされたことを通知する復元メッセージに、パッケージ ソースが出力されます。 次に例を示します。

Installed Moq 4.16.1 from https://api.nuget.org/v3/index.json with content hash bw3R9q8cVNhWXNpnvWb0OGP4HadS4zvClq+T1zf7AF+tLY1haZ2AvbHidQekf4PDv1T40c6brZeT/V0IBq7cEQ==.

ヒント

このメッセージは、通常または情報の詳細度で出力されます。 Visual Studio と dotnet CLI では最小の詳細度に既定値が設定されるため、このメッセージは既定では表示されません。 msbuildnuget CLI ツールでは通常の詳細度に既定値が設定されるため、このメッセージは既定で表示されます。

HTTP ログ メッセージ

パッケージをローカルで利用できない場合は、global-packages フォルダー、フォールバック フォルダー、またはローカル ファイル ソースのいずれかに、NuGet によって、任意の構成されたパッケージ ソースから HTTP 経由でパッケージがダウンロードされます。 HTTP 要求と応答は通常の詳細度レベルでログに記録されます。また、パッケージのバージョンごとに 1 つの要求と応答のみが表示されます。 次に例を示します。

info :   GET https://api.nuget.org/v3-flatcontainer/moq/index.json
info :   OK https://api.nuget.org/v3-flatcontainer/moq/index.json 56ms
info :   GET https://api.nuget.org/v3-flatcontainer/moq/4.16.1/moq.4.16.1.nupkg
info :   OK https://api.nuget.org/v3-flatcontainer/moq/4.16.1/moq.4.16.1.nupkg 3ms

ファイルが最近ダウンロードされていた場合は、NuGet のhttp-cache から取得される可能性があります

CACHE https://api.nuget.org/v3-flatcontainer/moq/index.json
CACHE https://api.nuget.org/v3-flatcontainer/moq/4.16.1/moq.4.16.1.nupkg

URL 形式は、異なる NuGet HTTP サーバーの実装や、NuGet V2 または V3 HTTP プロトコルが実装されているかどうかによって、異なる場合があります。

nuget.config に複数の HTTP ソースが定義されている場合は、各パッケージの index.json ファイルに対して複数の要求が表示されます (各ソースにつき 1 つ)。 ただし、パッケージの各バージョンについて、ダウンロードされるのは 1 つの nupkg だけになります。

パッケージの署名のログ メッセージ

ダウンロードするパッケージが署名されている場合、NuGet によって署名が検証され、詳細度が高い場合は次のメッセージが記録されます。

PackageSignatureVerificationLog: PackageIdentity: Moq.4.16.1 Source: https://api.nuget.org/v3/index.json PackageSignatureValidity: True

このメッセージでは、パッケージが HTTP パッケージ ソースからダウンロードされたか、またはローカル パッケージ ソースからコピーされたかが報告されます。 パッケージが global-packages フォルダーまたはフォールバック フォルダーで既に使用可能な場合は、出力されません。

重要

VeriSign CA の信頼の削除により、NuGet では、特定のプラットフォームで、特定のバージョンの NuGet および .NET SDK において、署名付きパッケージの検証が無効になっています。 そのため、復元を実行しているプラットフォームや、使用している .NET または NuGet のバージョンによっては、同じパッケージに PackageSignatureVerificationLog ログがある場合と、それらのログが見つからない場合があります。

NuGet のバージョンのマップ

次のバージョンの NuGet には、パッケージ ソースのログに関する重要な変更点があります。

NuGet のバージョン Visual Studio バージョン .NET SDK のバージョン
NuGet 5.9.0 Visual Studio 2019 16.9.0 .NET 5 SDK 5.0.200