Risoluzione dei problemi relativi ai pacchetti installati
In alcuni casi potrebbe essere necessario convalidare l'origine da cui è stato installato un pacchetto specifico. Ecco alcuni modi in cui è possibile controllare.
Nota
Alcune origini di pacchetti supportano un concetto noto come origini upstream. Ad esempio, origini upstream di Azure Artifacts. I client NuGet non sanno se un pacchetto proviene da un'origine upstream. Pertanto, qualsiasi registrazione dell'origine del pacchetto elenca l'origine configurata, non l'origine upstream.
.nupkg.metadata
file nella cartella dei pacchetti globali
Quando un pacchetto viene estratto nella cartella global-packages , viene scritto un file .nupkg.metadata
. A partire da NuGet 5.9.0, NuGet aggiungerà l'origine del pacchetto. Vedere di seguito per eseguire il mapping delle versioni di NuGet alle versioni di Visual Studio o .NET SDK. Ad esempio:
{
"version": 2,
"contentHash": "bw3R9q8cVNhWXNpnvWb0OGP4HadS4zvClq+T1zf7AF+tLY1haZ2AvbHidQekf4PDv1T40c6brZeT/V0IBq7cEQ==",
"source": "https://api.nuget.org/v3/index.json"
}
Nota
Se la cartella global-packages contiene pacchetti estratti prima dell'aggiornamento a una versione più recente degli strumenti con NuGet 5.9.0, il .nupkg.metadata
file sarà la versione 1 e non conterrà l'origine del pacchetto. È possibile cancellare la cartella global-packages per assicurarsi che tutti i pacchetti contengano l'origine del pacchetto.
Suggerimento
NuGet scrive il .nupkg.metadata
file solo nella cartella global-packages . I progetti che usano packages.config
usano una cartella dei pacchetti di soluzioni, che non crea un .nupkg.metadata
file.
Messaggio di log del pacchetto installato
A partire da NuGet 5.9.0, NuGet restituisce l'origine del pacchetto nel messaggio di ripristino che informa che è stato installato un pacchetto. Ad esempio:
Installed Moq 4.16.1 from https://api.nuget.org/v3/index.json with content hash bw3R9q8cVNhWXNpnvWb0OGP4HadS4zvClq+T1zf7AF+tLY1haZ2AvbHidQekf4PDv1T40c6brZeT/V0IBq7cEQ==.
Suggerimento
Questo messaggio viene restituito al livello di dettaglio normale/informativo. Per impostazione predefinita, Visual Studio e l'interfaccia della dotnet
riga di comando hanno un livello minimo di dettaglio, pertanto questo messaggio non sarà visibile per impostazione predefinita. Per impostazione predefinita, gli strumenti dell'interfaccia msbuild
della riga di comando e nuget
hanno un livello di dettaglio normale, quindi questo messaggio sarà visibile per impostazione predefinita.
Messaggio di log HTTP
Quando un pacchetto non è disponibile in locale, nella cartella global-packages, in una cartella di fallback o in un'origine file locale, NuGet lo scaricherà da qualsiasi origine del pacchetto configurata tramite HTTP. Le richieste e le risposte HTTP vengono registrate a livello di dettaglio normale e dovrebbero essere visualizzate solo una singola richiesta e risposta per ogni versione del pacchetto. Ad esempio:
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
Se i file sono stati scaricati di recente, potrebbero essere recuperati dalla cache http-cache di NuGet
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
Il formato dell'URL può essere diverso per le diverse implementazioni del server HTTP NuGet e se implementa il protocollo HTTP NuGet V2 o V3.
Se sono nuget.config
definite più origini HTTP, verranno visualizzate più richieste al file di index.json
ogni pacchetto, una per ogni origine. Tuttavia, sarà disponibile un solo nupkg
download per ogni versione del pacchetto.
Messaggio del log della firma del pacchetto
Se il pacchetto scaricato è firmato, NuGet convaliderà la firma e porterà il messaggio seguente in dettaglio:
PackageSignatureVerificationLog: PackageIdentity: Moq.4.16.1 Source: https://api.nuget.org/v3/index.json PackageSignatureValidity: True
Questo messaggio verrà segnalato se il pacchetto è stato scaricato da un'origine del pacchetto HTTP o copiato da un'origine del pacchetto locale. Non verrà restituito se il pacchetto è già disponibile nella cartella global-packages o in una cartella di fallback.
Importante
A causa della rimozione dell'attendibilità di VeriSign CA NuGet ha disabilitato la verifica del pacchetto firmato in determinate piattaforme, in determinate versioni di NuGet e .NET SDK. Di conseguenza, gli stessi pacchetti potrebbero avere PackageSignatureVerificationLog
log o tali log potrebbero non essere presenti, a seconda della piattaforma in cui si esegue il ripristino e della versione di .NET o NuGet in uso.
Mappa delle versioni di NuGet
Le versioni seguenti di NuGet presentano modifiche importanti relative alla registrazione dell'origine del pacchetto:
Versione di NuGet | Versione di Visual Studio | Versione di .NET SDK |
---|---|---|
NuGet 5.9.0 | Visual Studio 2019 16.9.0 | .NET 5 SDK 5.0.200 |