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.

Annotazioni

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 globale dei pacchetti

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. Per esempio:

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

Annotazioni

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. Per 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 la CLI usano un livello minimo di dettaglio, quindi questo messaggio non sarà visibile. Gli strumenti CLI msbuild 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. Per 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 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 il tuo nuget.config ha definite più origini HTTP, verranno visualizzate più richieste al file index.json di 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 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