Problembehandlung bei installierten Paketen
Manchmal möchten Sie möglicherweise überprüfen, aus welcher Quelle ein bestimmtes Paket installiert wurde. Hier einige Möglichkeiten der Überprüfung.
Hinweis
Einige Paketquellen unterstützen ein Konzept, das als Upstreamquellen bezeichnet wird. Beispielsweise Azure Artifacts-Upstreamquellen. NuGet-Clients wissen nicht, ob ein Paket aus einer Upstreamquelle stammt. Daher listet jede Protokollierung der Paketquelle die konfigurierte Quelle und nicht die Upstreamquelle auf.
Datei .nupkg.metadata
im Ordner für globale Pakete
Wenn ein Paket in den Ordner global-packages extrahiert wird, wird eine .nupkg.metadata
-Datei geschrieben. Ab NuGet 5.9.0 fügt NuGet die Paketquelle hinzu. Im Folgenden erfahren Sie, wie Sie NuGet-Versionen Visual Studio-oder .NET SDK-Versionen zuordnen. Zum Beispiel:
{
"version": 2,
"contentHash": "bw3R9q8cVNhWXNpnvWb0OGP4HadS4zvClq+T1zf7AF+tLY1haZ2AvbHidQekf4PDv1T40c6brZeT/V0IBq7cEQ==",
"source": "https://api.nuget.org/v3/index.json"
}
Hinweis
Wenn Ihr Ordner global-packages Pakete enthält, die extrahiert wurden, bevor Sie ein Upgrade auf eine neuere Version von Tools mit NuGet 5.9.0 durchgeführt haben, ist die Datei .nupkg.metadata
Version 1 und enthält die Paketquelle nicht. Sie können Ihren Ordner global-packages löschen, um sicherzustellen, dass alle Pakete die Paketquelle enthalten.
Tipp
NuGet schreibt die Datei .nupkg.metadata
nur in den Ordner global-packages. Projekte, die packages.config
verwenden, verwenden einen Lösungspaketordner, der keine Datei .nupkg.metadata
erstellt.
Protokollmeldung zu installierten Paketen
Ab NuGet 5.9.0 gibt NuGet die Paketquelle in der Wiederherstellungsmeldung aus, die darüber informiert, dass ein Paket installiert wurde. Zum Beispiel:
Installed Moq 4.16.1 from https://api.nuget.org/v3/index.json with content hash bw3R9q8cVNhWXNpnvWb0OGP4HadS4zvClq+T1zf7AF+tLY1haZ2AvbHidQekf4PDv1T40c6brZeT/V0IBq7cEQ==.
Tipp
Diese Meldung wird bei normaler/informationaler Ausführlichkeit ausgegeben. Visual Studio und die dotnet
CLI sind standardmäßig auf minimale Ausführlichkeit festgelegt, sodass diese Meldung standardmäßig nicht sichtbar ist. msbuild
und die nuget
CLI-Tools sind standardmäßig auf normale Ausführlichkeit festgelegt, sodass diese Meldung standardmäßig sichtbar ist.
HTTP-Protokollmeldung
Wenn ein Paket nicht lokal verfügbar ist (im Ordner global-packages, einem Fallbackordner oder einer lokalen Dateiquelle), lädt NuGet es aus einer beliebigen konfigurierten Paketquelle über HTTP herunter. HTTP-Anforderungen und -Antworten werden mit der normalen Ausführlichkeitsstufe protokolliert, und Sie sollten nur eine einzige Anforderung und Antwort pro Paketversion sehen. Zum 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 vor Kurzem heruntergeladen wurden, können sie ggf. aus dem http-cache von NuGet abgerufen werden.
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 verschiedene NuGet-HTTP-Serverimplementierungen und abhängig davon unterschiedlich sein, ob das HTTP-Protokoll NuGet V2 oder V3 implementiert wird.
Wenn für Ihre Datei nuget.config
mehrere HTTP-Quellen definiert sind, werden mehrere Anforderungen für jede index.json
-Datei jedes Pakets angezeigt, eine für jede Quelle. Es wird jedoch nur ein einzelner nupkg
-Download für jede Version des Pakets vorhanden sein.
Paketsignatur-Protokollmeldung
Wenn das heruntergeladene Paket signiert ist, überprüft NuGet die Signatur und protokolliert die folgende Meldung mit detaillierter Ausführlichkeit:
PackageSignatureVerificationLog: PackageIdentity: Moq.4.16.1 Source: https://api.nuget.org/v3/index.json PackageSignatureValidity: True
Diese Meldung wird unabhängig davon ausgegeben, ob das Paket aus einer HTTP-Paketquelle heruntergeladen oder aus einer lokalen Paketquelle kopiert wurde. Sie wird nicht ausgegeben, wenn das Paket bereits im Ordner global-packages oder in einem Fallbackordner verfügbar ist.
Wichtig
Aufgrund der Aufhebung der Vertrauensstellung von VeriSign CA hat NuGet die Überprüfung signierter Pakete auf bestimmten Plattformen in bestimmten Versionen von NuGet und im .NET SDK deaktiviert. Daher können dieselben Pakete PackageSignatureVerificationLog
-Protokolle aufweisen, oder diese Protokolle können fehlen, je nachdem, auf welcher Plattform Sie die Wiederherstellung ausführen und welche Version von .NET oder NuGet Sie verwenden.
NuGet-Versionszuordnung
Die folgenden Versionen von NuGet weisen wichtige Änderungen in Bezug auf die Paketquellprotokollierung auf:
NuGet-Version | Visual Studio-Version | Version des .NET SDK |
---|---|---|
NuGet 5.9.0 | Visual Studio 2019 16.9.0 | .NET 5 SDK 5.0.200 |