TFS Nuget Restore步骤无法访问代理

时间:2018-03-27 02:54:55

标签: tfs continuous-integration nuget tfs2017

我们最近升级到TFS 2017,我试图让我们现有的构建从基于XAML的构建过渡到新的构建系统。这完全是企业防火墙的背后。

我的测试项目(dotNet Core)因错误而失败......

Assets file '<snip>project.assets.json' not found. Run a NuGet package restore to generate this file. 

...所以我在构建中添加了Nuget Restore步骤。这导致生成日志中出现以下错误...

<snip>
Starting: NuGet restore   
**************************************************************************
==========================================================================
Task         : NuGet Restore
Description  : Restores NuGet packages in preparation for a Visual Studio 
Build step.
Version      : 1.0.1
Author       : Microsoft Corporation
Help         : [More Information](https://go.microsoft.com/fwlink/?
LinkID=613747)
==========================================================================
C:\Windows\system32\chcp.com 65001
Active code page: 65001 

......等了30秒......

connect ETIMEDOUT 117.18.232.200:443
**************************************************************************
Finishing: NuGet restore
<snip>

然而,与Fiddler和网络人员一起检查,在显示的位置等待大约30秒时,框中没有(相关的)网络活动。

显然,Nuget Restore步骤正在尝试访问互联网,但由于无法访问代理(我们在初始设置构建服务器时遇到类似问题),而不是被阻止,因此无法访问互联网。网络日志。

如果我远离构建服务器并使用与构建服务相同的凭据登录,我可以成功使用VS在框中构建测试项目,但显然使用IDE配置文件来访问代理。我在devenv.exe.config和%appdata%\ NuGet \ NuGet.Config中配置了代理。

有人可以建议我在哪里设置它以便Nuget Restore步骤可以找到并使用它吗?

1 个答案:

答案 0 :(得分:1)

在构建代理计算机上尝试以下步骤:

  • 下载nuget的命令行版本
  • 将其添加到路径env var
  • nuget.exe config -set http_proxy = http://proxy:port
  • nuget.exe config -set http_proxy.user = Domain \ Username
  • nuget.exe config -set http_proxy.password = myPassword

<强>更新

使用PackageReference管理格式时,project.assets.json文件维护项目的依赖关系图,该格式用于确保计算机上安装了所有必需的软件包。由于此文件是通过包还原动态生成的,因此通常不会将其添加到源代码管理中。因此,使用msbuild等工具构建项目时会发生此错误,而该工具不会自动恢复包。

在这种情况下,请运行msbuild /t:restore后跟msbuild,或使用dotnet build(自动恢复包)。

更多详情,请参阅以下链接: https://docs.microsoft.com/en-us/nuget/consume-packages/package-restore-troubleshooting