Opzioni di verifica del pacchetto firmato NuGet
Riprovare a errori radice non attendibili
Nota
Questo problema si applica solo a Windows per i certificati radice nel programma radice attendibile Microsoft.
Durante la compilazione della catena di certificati, Windows recupera i certificati radice di terze parti pertinenti al primo uso e li aggiunge come certificati radice attendibili in locale. Internamente, Windows avvia il recupero della rete con una chiamata RPC e, se il sistema è sufficientemente occupato, questa chiamata RPC potrebbe non riuscire. Questo errore comporta che il certificato radice non sia attendibile in locale. Questo problema può verificarsi la prima volta che viene osservato un certificato radice, ma una volta che il certificato radice è stato considerato attendibile in locale, il problema non si verificherà nuovamente per tale certificato. In genere, l'edificio a catena avrà esito positivo con nuovi tentativi.
Per gli utenti NuGet, i sintomi di questo problema sono che l'operazione NuGet in genere avrà esito positivo al tentativo e a uno dei seguenti:
- NU3028 con un messaggio simile a "Una catena di certificazione elaborata correttamente ma terminata in un certificato radice non attendibile dal provider di attendibilità".
- NU3037 con un messaggio simile a "Il periodo di validità della firma primaria del repository è scaduto".
Nota
Questa opzione è disponibile a partire da NuGet 6.0.0 e si applica solo all'errore specifico di Windows descritto in precedenza. L'opzione non si applica ad altri scenari e non ha alcun effetto su Linux o macOS.
Prima di NuGet 6.8.0 e .NET 8 SDK, questa opzione è disabilitata per impostazione predefinita.
A partire da NuGet 6.8.0 e .NET 8 SDK, questa opzione è abilitata per impostazione predefinita in Windows. La variabile di ambiente non deve essere impostata in modo esplicito, a meno che non si voglia sostituire il valore predefinito di 3,1000
o rifiutare esplicitamente. Per rifiutare esplicitamente, impostare la variabile di 0
ambiente con il valore .
È possibile abilitare un nuovo tentativo sperimentale e automatico per gli errori radice non attendibili in Windows impostando rispettivamente una variabile di ambiente denominata NUGET_EXPERIMENTAL_CHAIN_BUILD_RETRY_POLICY
con un valore costituito da 2 numeri interi positivi delimitati da virgole che rappresentano rispettivamente il numero di tentativi e l'intervallo di sospensione in millisecondi. È consigliabile scegliere i valori sensibili.
Ad esempio, impostando la variabile di ambiente su un valore simile 3,1000
al seguente:
set NUGET_EXPERIMENTAL_CHAIN_BUILD_RETRY_POLICY=3,1000
... provare fino a 4 volte (tentativo iniziale più 3 tentativi) con 1 secondo (1.000 ms) tra ogni tentativo.