Opciones para la comprobación de paquetes NuGet firmados

Reintento de errores raíz que no son de confianza

Nota:

Esta incidencia solo se aplica a Windows para los certificados raíz del Programa de certificados raíz de confianza de Microsoft.

Durante la creación de la cadena de certificados, Windows captura los certificados raíz de terceros pertinentes en el primer uso y los agrega como certificados raíz de confianza locales. Internamente, Windows inicia esta captura de red con una llamada RPC y, si el sistema está lo suficientemente ocupado, esta llamada RPC puede producir un error. Este error produce que el certificado raíz no sea de confianza localmente. Este problema se puede producir la primera vez que se observa un certificado raíz, pero una vez que el certificado raíz ya es de confianza en el entorno local, el problema no se repetirá. Normalmente, la creación de cadenas se realizará correctamente con reintentos.

En el caso de los usuarios de NuGet, los síntomas de este problema son que la operación de NuGet normalmente se realizará correctamente durante el reintento y en cualquiera de los casos siguientes:

  • NU3028 con un mensaje como "Se ha procesado una cadena de certificados, pero termina en un certificado raíz en el que no confía el proveedor de confianza".
  • NU3037 con un mensaje como "El período de validez de la firma principal del repositorio ha expirado".

Nota:

Esta opción está disponible a partir de NuGet 6.0.0 y solo se aplica al error específico de Windows descrito antes. La opción no se aplica a ningún otro escenario y no tiene ningún efecto en Linux ni macOS.

Antes del SDK de NuGet 6.8.0 y .NET 8, esta opción está deshabilitada de manera predeterminada.

A partir del SDK de NuGet 6.8.0 y .NET 8, esta opción está habilitada de manera predeterminada en Windows. No es necesario establecer explícitamente la variable de entorno a menos que desee invalidar el valor predeterminado de 3,1000 o no participar. Para no participar, establezca la variable de entorno con un valor de 0.

Puede habilitar un reintento automático experimental para errores raíz que no son de confianza en Windows si establece una variable de entorno denominada NUGET_EXPERIMENTAL_CHAIN_BUILD_RETRY_POLICY con un valor que consta de dos enteros positivos delimitados por comas que representan el recuento de reintentos y el intervalo de suspensión en milisegundos, respectivamente. Debe seleccionar valores que sean razonables para usted.

Por ejemplo, establezca la variable de entorno en un valor de 3,1000 de esta forma:

set NUGET_EXPERIMENTAL_CHAIN_BUILD_RETRY_POLICY=3,1000

...se intentaría hasta 4 veces (el intento inicial más 3 reintentos) con 1 segundo (1000 ms) entre cada intento.