NuGet 无法还原代理后面的包

NuGet can't restore packages behind the proxy

所以我们一直在努力解决 NuGet 在公司代理后面无法恢复包的问题。我将检查我们的设置。

硬件/软件:

WinServer 2012 R2 加入域并在公司代理后面

带有 Update2 的 TFS 2017

NuGet 还原错误

基本上我们所做的就是尝试为我们的环境设置构建自动化。现在我们只是在试验它并创建了一个基本的 Visual Studio 应用程序,在构建定义中包含一个 NuGet 恢复步骤。

抱歉,NuGet 还原步骤失败并出现以下错误。日志中的相关文件如下:

2017-08-11T13:49:41.7282874Z     Unable to find version '1.5.2' of package 'WebGrease'.
2017-08-11T13:49:41.7282874Z       https://api.nuget.org/v3/index.json: Unable to load the service index for source https://api.nuget.org/v3/index.json.
2017-08-11T13:49:41.7282874Z       An error occurred while sending the request.
2017-08-11T13:49:41.7282874Z       Unable to connect to the remote server
2017-08-11T13:49:41.7282874Z       A socket operation was attempted to an unreachable network [2606:2800:11f:17a5:191a:18d5:537:22f9]:443
2017-08-11T13:49:41.7282874Z 
2017-08-11T13:49:41.7282874Z NuGet Config files used:
2017-08-11T13:49:41.7282874Z     C:\Windows\ServiceProfiles\NetworkService\AppData\Roaming\NuGet\NuGet.Config
2017-08-11T13:49:41.7282874Z 
2017-08-11T13:49:41.7282874Z Feeds used:
2017-08-11T13:49:41.7282874Z     https://api.nuget.org/v3/index.json
2017-08-11T13:49:41.8064377Z ##[error]Error: C:\agent\_work\_tasks\NuGetInstaller_333b11bd-d341-40d9-afcf-b32d5ce6f23b[=10=].2.31\node_modules\nuget-task-common\NuGet.0.0\NuGet.exe failed with return code: 1
2017-08-11T13:49:41.8064377Z ##[error]Packages failed to install
2017-08-11T13:49:41.8064377Z ##[section]Finishing: NuGet restore **\*.sln

我们尝试了什么

从日志中可以明显看出 NuGet.config 文件位于此处:

C:\Windows\ServiceProfiles\NetworkService\AppData\Roaming\NuGet\NuGet.config

当我们修改 NuGet.config 文件以包含代理设置时:

<?xml version="1.0" encoding="utf-8"?>
<configuration>
  <packageSources>
    <add key="nuget.org" value="https://api.nuget.org/v3/index.json" protocolVersion="3" />
  </packageSources>
  <config>
        <add key="http_proxy" value="http://MY_USER_NAME:MY_PASSWORD@OUR_DOMAIN.com" />
  </config>
</configuration>

然后报错就不同了:

 Unable to find version '1.5.2' of package 'WebGrease'.
      https://api.nuget.org/v3/index.json: Unable to load the service index for source https://api.nuget.org/v3/index.json.
      An error occurred while sending the request.
      The remote server returned an error: (400) Bad Request.

如果服务器不通过代理连接到互联网,一切正常。

有没有其他人遇到同样的问题?我们的代理配置看起来正确吗?任何帮助将不胜感激。

谢谢。

解决方案是您必须将 VSTS Build Agent 配置为 运行 在域用户帐户下。