Variables de entorno de la CLI de NuGet

El comportamiento de la CLI de nuget.exe se puede configurar a través de una serie de variables de entorno, que afectan a nuget.exe en los niveles de proceso, usuario o equipo. Las variables de entorno siempre invalidan cualquier configuración en archivos NuGet.Config, lo que permite a los servidores de compilación cambiar la configuración adecuada sin modificar ningún archivo.

En general, las opciones especificadas directamente en la línea de comandos o en los archivos de configuración de NuGet prevalecen, pero hay algunas excepciones, como FORCE_NUGET_EXE_INTERACTIVE. Si encuentras que nuget.exe se comporta de forma diferente en equipos diferentes, una variable de entorno podría ser la causa. Por ejemplo, Azure Web Apps Kudu (se usa durante la implementación) tiene establecido NUGET_XMLDOC_MODE como skip para acelerar el rendimiento de la restauración de paquetes y ahorrar espacio en disco.

La CLI de NuGet usa MSBuild para leer los archivos del proyecto. Todas las variables de entorno están disponibles como propiedades durante la evaluación de MSBuild. La lista de propiedades documentadas en el paquete nuGet y la restauración como destinos de MSBuild también se pueden establecer como variables de entorno.

Variable Descripción Comentarios
http_proxy Proxy HTTP usado para las operaciones HTTP de NuGet. Se especificaría como http://<username>:<password>@proxy.com.
no_proxy Configura los dominios para omitir el uso del proxy. Se especifica como dominios separados por coma (,).
EnableNuGetPackageRestore Marca si NuGet debe conceder implícitamente consentimiento si lo requiere el paquete en la restauración. La marca especificada se trata como true o 1, cualquier otro valor se trata como marca no establecida.
NUGET_CLI_LANGUAGE Cambia el lenguaje de salida de nuget.exe Disponible en la versión 6.5 y versiones posteriores. Los valores admitidos son nombres de configuración regional de lenguajes de Visual Studio admitidos: zh-cn, zh-tw, cs-cz, en-us, es-es, fr-fr, de-de, it-it, ja-jp, ko-kr, pl-pl, pt-br, ru-ru y tr-tr.
NUGET_EXE_NO_PROMPT Impide que el exe solicite credenciales. Cualquier valor excepto null o una cadena vacía se tratará como si esta marca tuviera el valor de true.
NUGET_MAX_RETRY_AFTER_DELAY_SECONDS Duración máxima entre reintentos cuando la respuesta HTTP contiene el encabezado Retry-After Cuando NUGET_OBSERVE_RETRY_AFTER está habilitado (como está de manera predeterminada) y una respuesta HTTP contiene un encabezado Retry-After, esta variable de entorno establece la duración máxima que se esperará. Ten en cuenta que Retry-After puede proporcionar una duración (delta) o una marca de tiempo (fecha). Si el servidor devuelve una marca de tiempo y el reloj de la máquina está sin sincronizar con el servidor, la duración calculada puede ser muy larga (o negativa).
FORCE_NUGET_EXE_INTERACTIVE Variable de entorno global para forzar el modo interactivo. Cualquier valor excepto null o una cadena vacía se tratará como si esta marca tuviera el valor de true.
NUGET_PACKAGES Ruta de acceso que se va a usar para la carpeta global-packages, tal y como se describe en Administración de las carpetas de caché y global-packages. Especificado como ruta de acceso absoluta.
NUGET_FALLBACK_PACKAGES Carpetas de paquetes de reserva globales. Rutas de acceso de carpeta absolutas separadas por punto y coma (;).
NUGET_HTTP_CACHE_PATH Ruta de acceso que se va a usar para la carpeta http-cache, tal y como se describe en Administración de las carpetas de caché y global-packages. Especificado como ruta de acceso absoluta.
NUGET_OBSERVE_RETRY_AFTER Si se opta por no participar en el uso del mensaje de respuesta HTTP Retry-After, las duraciones se retrasarán Antes de NuGet 6.5, NuGet reintentaría todas las solicitudes erróneas con la misma estrategia de interrupción. A partir de NuGet 6.5, NuGet usará de manera predeterminada el período de retraso Retry-After proporcionado por el servidor. Establece esta variable de entorno en false para ignorar el encabezado de respuesta Retry-After. Consulta también NUGET_MAX_RETRY_AFTER_DELAY_SECONDS
NUGET_RESTORE_MSBUILD_ARGS Establece argumentos adicionales de MSBuild. Pasa argumentos idénticos a como los pasaría a msbuild.exe. Un ejemplo de cómo establecer una propiedad de proyecto Foo desde la línea de comandos en la barra de valores sería /p:Foo=Bar
NUGET_RETRY_HTTP_429 Cambio del comportamiento de reintento en respuestas HTTP 429 Antes de NuGet 6.5, NuGet no reintentaría las solicitudes que dan lugar a HTTP 429 en 408. El valor predeterminado es true y esta variable de entorno se puede establecer en false para participar en el comportamiento anterior de NuGet (no reintentar la solicitud)
NUGET_RESTORE_MSBUILD_VERBOSITY Establece el nivel de detalle de registro de MSBuild. El valor predeterminado es quiet ("/v:q"). Los niveles permitidos son q[uiet], m[inimal], n[ormal], d[etailed] y diag[nostic].
NUGET_SHOW_STACK Determina si se debe mostrar la excepción completa (incluido el seguimiento de la pila) al usuario. Especificado como true o false (valor predeterminado).
NUGET_UPDATEFILETIME_MAXRETRIES Establece el número de veces que NuGet intentará establecer la marca de tiempo del archivo al extraer paquetes. En el software antivirus de Windows puede abrir temporalmente archivos, lo que impide que NuGet cambie la marca de tiempo. NuGet usa una interrupción exponencial en la que la duración de espera entre los intentos es de Math.Pow(2, retryNumber). Los reintentos máximos predeterminados son 9, lo que significa que la duración total de espera predeterminada antes del error será de aproximadamente un segundo.
NUGET_XMLDOC_MODE Determina cómo se debe controlar la extracción de archivos de documentación XML de los ensamblados. Los modos admitidos son skip (no extraer archivos de documentación XML), compress (almacenar archivos de documentos XML como un archivo ZIP) o none (valor predeterminado, tratar los archivos de documentos XML como archivos normales).
NUGET_CERT_REVOCATION_MODE Determina cómo se realiza la comprobación de estado de revocación del certificado usado para firmar un paquete cuando se instala o restaura un paquete firmado. Si no se establece, el valor predeterminado es online. Valores posibles: online (predeterminado), offline. Relacionado con NU3028
NUGET_ENABLE_ENHANCED_HTTP_RETRY Habilita o deshabilita el reintento de HTTP mejorado en NuGet. Los valores posibles son true (valor predeterminado) o false.
NUGET_ENHANCED_MAX_NETWORK_TRY_COUNT Permite configurar el número máximo de veces que se debe reintentar una conexión HTTP cuando se habilitan reintentos mejorados. Número que representa la cantidad de reintentos que se van a realizar; el valor predeterminado es 6.
NUGET_ENHANCED_NETWORK_RETRY_DELAY_MILLISECONDS Permite configurar la cantidad de tiempo de espera en milisegundos antes de reintentar una conexión HTTP cuando se habilitan reintentos mejorados. El número predeterminado de segundos que se debe esperar es 1000.
NUGET_EXPERIMENTAL_USE_NJ_FOR_FILE_PARSING Determina si se usa o no Netwonsoft.Json para analizar el archivo de recursos durante la restauración. Los valores posibles son true o false (valor predeterminado).