NuGet CLI 环境变量

nuget.exe CLI 的行为可通过众多环境变量进行配置,而这些环境变量会影响计算机范围、用户或进程级别的 nuget.exe。 环境变量始终会替代 NuGet.Config 文件中的任意设置,从而允许生成服务器更改适当的设置,而无需修改任何文件。

通常,直接在命令行或 NuGet 配置文件中指定的选项具有优先级,但也存在一些例外情况,例如 FORCE_NUGET_EXE_INTERACTIVE。 如果发现 nuget.exe 在不同计算机之间的行为有所差异,则可能源于环境变量。 例如,Azure Web 应用 Kudu(在部署期间使用)将 NUGET_XMLDOC_MODE 设为跳过以提升包还原性能并节省磁盘空间。

NuGet CLI 使用 MSBuild 读取项目文件。 在 MSBuild 评估期间,所有环境变量均可用作属性作为 MSBuild 目标的 NuGet 打包和还原中所记录属性的列表也可设为环境变量。

变量 说明 注解
http_proxy 用于 NuGet HTTP 操作的 HTTP 代理。 这将被指定为 http://<username>:<password>@proxy.com
no_proxy 配置域以绕过使用代理。 指定为用逗号 (,) 分隔的域。
EnableNuGetPackageRestore 为 NuGet 是否应隐式授予许可(如果在还原时包需要它)添加标志。 指定的标志被视为 true1,而其他所有值则视为未设置标志。
NUGET_CLI_LANGUAGE 更改 nuget.exe 输出语言 可在 6.5 及更高版本中使用。 支持的值为受支持的 Visual Studio 语言区域设置名称:zh-cnzh-twcs-czen-uses-esfr-frde-deit-itja-jpko-krpl-plpt-brru-rutr-tr
NUGET_EXE_NO_PROMPT 阻止 exe 提示输入凭据。 除 null 或空字符串以外的所有值都将被视为将此标志设为 true。
NUGET_MAX_RETRY_AFTER_DELAY_SECONDS HTTP 响应包含 Retry-After 标头时,重试之间的最大持续时间 已启用 NUGET_OBSERVE_RETRY_AFTER(默认为启用)且 HTTP 响应包含 Retry-After 标头时,此环境变量会设置需等待的最大持续时间。 请注意,Retry-After 可提供持续时间(增量)或时间戳(日期)。 如果服务器返回时间戳,且计算机的时钟与服务器不同步,则计算出的持续时间可能很长(或为负)。
FORCE_NUGET_EXE_INTERACTIVE 用于强制使用交互模式的全局环境变量。 除 null 或空字符串以外的所有值都将被视为将此标志设为 true。
NUGET_PACKAGES 用于 global-packages 文件夹的路径,如管理全局包和缓存文件夹中所述。 指定为绝对路径。
NUGET_FALLBACK_PACKAGES 全局回退包文件夹。 以分号 (;) 分隔的绝对文件夹路径。
NUGET_HTTP_CACHE_PATH 用于 http-cache 文件夹的路径,如管理全局包和缓存文件夹中所述。 指定为绝对路径。
NUGET_OBSERVE_RETRY_AFTER 选择退出使用 HTTP 响应消息 Retry-After 延迟持续时间 在 NuGet 6.5 之前,NuGet 会使用同一退让策略来重试所有失败的请求。 从 NuGet 6.5 开始,NuGet 默认使用服务器提供的 Retry-After 延迟期。 将此环境变量设为 false 可忽略 Retry-After 响应标头。 另请参阅 NUGET_MAX_RETRY_AFTER_DELAY_SECONDS
NUGET_RESTORE_MSBUILD_ARGS 设置其他 MSBuild 参数。 以与将参数传递给 msbuild.exe 的相同方式来传递参数。 将命令行中的项目属性 Foo 设为 Bar 值的示例为:/p:Foo=Bar
NUGET_RETRY_HTTP_429 更改针对 HTTP 429 响应的重试行为 在 NuGet 6.5 之前,NuGet 不会对导致 408 时 HTTP 429 的请求进行重试。 默认值为 true,而此环境变量可设为 false 从而选用较旧的 NuGet 行为(不重试请求)
NUGET_RESTORE_MSBUILD_VERBOSITY 设置 MSBuild 日志详细级别。 默认值为 quiet ("/v:q")。 可能的值为 q[uiet]m[inimal]n[ormal]d[etailed]diag[nostic]
NUGET_SHOW_STACK 确定是否应向用户显示完整异常(包括堆栈跟踪)。 指定为 truefalse(默认值)。
NUGET_UPDATEFILETIME_MAXRETRIES 设置 NuGet 在提取包时尝试设置文件时间戳的次数。 在 Windows 防病毒软件上,可能会暂时打开文件,从而阻止 NuGet 更改时间戳。 NuGet 使用指数级退避,其中尝试之间的等待持续时间为 Math.Pow(2, retryNumber)。 默认的最大重试次数为 9,这意味着在失败前的默认总等待持续时间约为一秒。
NUGET_XMLDOC_MODE 确定应如何处理程序集 XML 文档文件提取。 支持的模式为跳过(不提取 XML 文档文件)、压缩(将 XML 文档文件存储为 zip 存档)或(默认值,将 XML 文档文件视为常规文件)。
NUGET_CERT_REVOCATION_MODE 确定在安装或还原已签名包时如何执行用于对包进行签名的证书的吊销状态检查。 如果未设置,则默认为 online 可能的值为 online(默认值)和 offline。 与 NU3028 相关
NUGET_ENABLE_ENHANCED_HTTP_RETRY 启用或禁用 NuGet 中的增强型 HTTP 重试。 可能的值为 true(默认)或 false
NUGET_ENHANCED_MAX_NETWORK_TRY_COUNT 配置启用增强型重试时应重试 HTTP 连接的最大次数。 表示要执行的重试次数的数字,默认值为 6
NUGET_ENHANCED_NETWORK_RETRY_DELAY_MILLISECONDS 配置启用增强型重试后重试 HTTP 连接之前等待的时间(以毫秒为单位)。 等待的毫秒数,默认值为 1000
NUGET_EXPERIMENTAL_USE_NJ_FOR_FILE_PARSING 确定 Netwonsoft.Json 是否在还原过程中用于分析资产文件 可能的值为 truefalse(默认)。