Freigeben über


Problembehandlung bei installierten Paketen

Manchmal sollten Sie überprüfen, aus welcher Quelle ein bestimmtes Paket installiert wurde. Hier sind einige Möglichkeiten, wie Sie dies überprüfen können.

Hinweis

Einige Paketquellen unterstützen ein Konzept, das als Upstreamquellen bezeichnet wird. Beispiel: Azure Artifacts upstream-Quellen. NuGet-Clients wissen nicht, ob ein Paket von einer Upstreamquelle stammt. Daher listet jede Protokollierung der Paketquelle die konfigurierte Quelle und nicht die Upstreamquelle auf.

.nupkg.metadata Datei im Ordner "Globale Pakete"

Wenn ein Paket in den Ordner "Globale Pakete " extrahiert wird, wird eine Datei .nupkg.metadata geschrieben. Ab NuGet 5.9.0 fügt NuGet die Paketquelle hinzu. Siehe unten, um NuGet-Versionen visual Studio- oder .NET SDK-Versionen zuzuordnen. Beispiel:

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

Hinweis

Wenn Ihr "global-packages"-Ordner Pakete extrahiert hat, bevor Sie ein Upgrade auf eine neuere Version von Tools, die NuGet 5.9.0 enthalten, durchführen, ist die .nupkg.metadata Datei Version 1 und enthält nicht die Paketquelle. Sie können den Ordner "Globale Pakete " löschen , um sicherzustellen, dass alle Pakete die Paketquelle enthalten.

Tipp

NuGet schreibt die .nupkg.metadata Datei nur in den Ordner "Globale Pakete ". Projekte, die packages.config verwenden, haben einen Lösungspaketordner, der keine .nupkg.metadata-Datei erstellt.

Protokollnachricht über installiertes Paket

Ab NuGet 5.9.0 gibt NuGet die Paketquelle in der Wiederherstellungsmeldung aus, die informiert, dass ein Paket installiert wurde. Beispiel:

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

Tipp

Diese Nachricht wird bei normalem/informativem Ausführlichkeitsgrad ausgegeben. Visual Studio und die dotnet CLI werden standardmäßig auf minimale Ausführlichkeit festgelegt, sodass diese Meldung nicht standardmäßig angezeigt wird. Die msbuild Und nuget CLI-Tools sind standardmäßig auf normale Ausführlichkeit festgelegt, sodass diese Meldung standardmäßig angezeigt wird.

HTTP-Protokollnachricht

Wenn ein Paket nicht lokal verfügbar ist, entweder im Ordner "Globale Pakete ", in einem Fallbackordner oder in einer lokalen Dateiquelle, lädt NuGet es von jeder konfigurierten Paketquelle über HTTP herunter. HTTP-Anforderungen und -Antworten werden auf der normalen Ausführlichkeitsebene protokolliert, und Sie sollten nur eine einzelne Anforderung und Antwort pro Paketversion sehen. Beispiel:

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

Wenn die Dateien kürzlich heruntergeladen wurden, werden sie möglicherweise aus dem Http-Cache von NuGet abgerufen.

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

Das URL-Format kann für unterschiedliche NuGet-HTTP-Serverimplementierungen unterschiedlich sein und unabhängig davon, ob das NuGet V2- oder V3-HTTP-Protokoll implementiert wird.

Wenn Für Ihre nuget.config Datei mehrere HTTP-Quellen definiert sind, werden für jede Quelle mehrere Anforderungen an die Datei jedes Pakets index.json angezeigt. Es wird jedoch nur ein einziger nupkg Download für jede Version des Pakets geben.

Paketsignaturprotokollnachricht

Wenn das heruntergeladene Paket signiert ist, überprüft NuGet die Signatur und protokolliert die folgende Meldung unter ausführlicher Ausführlichkeit:

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

Diese Meldung erfolgt, egal ob das Paket aus einer HTTP-Paketquelle heruntergeladen oder aus einer lokalen Paketquelle kopiert wurde. Es wird nicht ausgegeben, wenn das Paket bereits im Ordner "Globale Pakete " oder in einem Fallbackordner verfügbar ist.

Von Bedeutung

Aufgrund der Entfernung des Vertrauens von VeriSign CA hat NuGet die Überprüfung signierter Pakete auf bestimmten Plattformen in bestimmten Versionen von NuGet und des .NET SDK deaktiviert. Daher verfügen dieselben Pakete möglicherweise über PackageSignatureVerificationLog Protokolle, oder diese Protokolle fehlen, je nachdem, auf welcher Plattform Sie wiederherstellen, und welche Version von .NET oder NuGet Sie verwenden.

NuGet-Versionsübersicht

Die folgenden Versionen von NuGet haben wichtige Änderungen in Bezug auf die Paketquellprotokollierung:

NuGet-Version Visual Studio-Version .NET SDK-Version
NuGet 5.9.0 Visual Studio 2019 16.9.0 .NET 5 SDK 5.0.200