Condividi tramite


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