次の方法で共有


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

特定のパッケージがインストールされたソースを検証したい場合があります。 確認する方法を次に示します。

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

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

パッケージがグローバル パッケージ フォルダーに抽出されると、.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"
}

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

ヒント

NuGet は、 .nupkg.metadata ファイルを グローバル パッケージ フォルダーにのみ書き込みます。 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 は既定で最小限の詳細度に設定されているため、このメッセージは既定では表示されません。 msbuildおよびnuget CLI ツールは既定で通常の詳細度に設定されているため、このメッセージは既定で表示されます。

HTTP ログ メッセージ

パッケージがグローバル パッケージ フォルダー、フォールバック フォルダー、またはローカル ファイル ソースのいずれかでローカルで使用できない場合、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 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 つずつ、複数の要求が表示されます。 ただし、パッケージの各バージョンに対してダウンロード nupkg は 1 つだけです。

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

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

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

このメッセージは、パッケージが HTTP パッケージ ソースからダウンロードされたか、ローカル パッケージ ソースからコピーされたかを報告します。 パッケージがグローバル パッケージ フォルダーまたはフォールバック フォルダーに既に存在する場合は、出力されません。

Important

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