You need to enable JavaScript to run this app.
最新活动
大模型
产品
解决方案
定价
生态与合作
支持与服务
开发者
了解我们

.NET Core构建NuGet包检索失败,遇407代理认证错误

解决.NET Core自包含构建时的407代理认证错误

这个问题我在公司的Forefront TMG代理环境里也碰到过!核心原因就是NuGet拉取runtime包时,没通过代理的身份验证导致请求被拦截了。下面是几个亲测有效的解决步骤:

1. 配置NuGet代理凭据(推荐长期方案)

先找到你的NuGet配置文件:

  • Windows系统:%APPDATA%\NuGet\NuGet.Config
  • Linux/macOS:~/.nuget/NuGet/NuGet.Config

打开文件后,在<configuration>节点下添加代理相关配置:

<config>
  <!-- 替换为你的代理服务器地址和端口 -->
  <add key="http_proxy" value="http://your-proxy-server:proxy-port" />
  <add key="https_proxy" value="http://your-proxy-server:proxy-port" />
  <!-- 域账号格式:域名\用户名 -->
  <add key="proxy_username" value="your-domain\your-username" />
  <!-- 建议用命令加密密码,不要直接明文写入 -->
  <add key="proxy_password" value="your-password" />
  <!-- 若为NTLM代理,启用此项会自动使用当前登录用户凭据 -->
  <add key="proxy_use_default_credentials" value="true" />
</config>

⚠️ 注意:不想明文存密码的话,打开命令提示符运行以下命令,NuGet会自动加密密码并写入配置:

nuget config -set proxy_username=your-domain\your-username
nuget config -set proxy_password=your-password

2. 验证代理配置是否生效

运行下面的命令测试NuGet能否正常访问目标包:

nuget list runtime.win-x64.Microsoft.NETCore.DotNetHostPolicy

如果能正常列出包信息,说明配置已经生效。

3. 临时构建时指定代理(适合单次场景)

如果不想修改全局配置,可以在dotnet publish命令里直接传递代理参数:

dotnet publish -c Release -r win-x64 --self-contained true ^
/p:http_proxy=http://your-proxy-server:port ^
/p:https_proxy=http://your-proxy-server:port ^
/p:proxy_username=your-domain\your-username ^
/p:proxy_password=your-password

(Windows下用^换行,Linux/macOS用\

4. 额外排查点

  • 确认代理服务器地址、端口、账号密码是否正确,可先通过浏览器访问NuGet源地址测试代理连通性
  • 公司域环境下,确保你的账号有访问NuGet外部源的权限

内容的提问来源于stack exchange,提问作者MiguelSlv

火山引擎 最新活动