2017-10-17 82 views
1

所以我觉得我要的是这个职位的反面:VSTS NuGet restore fails (proxy?)运行的NuGet VSTS中的任务,而不代理设置

我们拥有的预置型机中运行的VSTS代理建立。该机器设置了http_proxy变量,以便代理进程可以与云中的VSTS进行通信。

然后我尝试使用内置的nuget任务来执行nuget恢复,但是我想要访问的提要在本地工件实例上。要访问此Feed,Nuget不需要使用代理所做的代理设置(我们在Internet选项中选中了“绕过本地地址的代理”选项)。

然而,当我运行的NuGet任务,我看到在我的构建日志下面,似乎到的NuGet代理设置为代理代理:

2017-10-17T14:02:14.4961204Z ##[debug]agent.proxyurl=http://X.X.X.X:8080 
2017-10-17T14:02:14.4961204Z ##[debug]agent.proxyusername=undefined 
2017-10-17T14:02:14.6992455Z ##[debug]agent.proxypassword=undefined 
2017-10-17T14:02:14.7773706Z ##[debug]Adding environment variable for NuGet proxy: http://X.X.X.X:8080/ 
2017-10-17T14:02:14.7773706Z ##[debug]exec tool: C:\vsts-agent\_work\_tool\NuGet\4.0.0\x64\nuget.exe 

(2台XXXX是相同的真实日志)

我已经尝试设置一个过程变量http_proxy=""并将此行添加到我的nuget.config <add key="http_proxy" value="" />,但它没有区别。

有没有办法运行nuget任务没有拿起代理代理?

如果我只是从VSTS中的命令行任务手动运行nuget,它都可以按预期工作。

回答

0

的VSTS代理应该能够从一个.proxybypass文件拿起代理排除设置:

echo http://local.nuget.server >> .proxybypass 

enter image description here

我不知道,如果的NuGet任务将挑选这件事(it looks like it doesn't yet) ,但至少你可以告诉代理忽略某些主机。这是在最近的代理版本so you may need to upgrade your agent中添加的。

我猜如果你使用我的VSTS Set Variable Task临时设置agent.proxyurl的值为一个空字符串并在调用nuget任务后恢复它,它现在应该可以工作。

PS the new configuration no longer uses the environment variable to set the proxy,新的默认设置是把它放在代理根目录下的.proxy文件中。

+0

请问我在哪里放置.proxybypass文件? – ssloan

+0

在代理文件夹中。 – jessehouwing

+1

使用设置变量选项('Write-Host“## vso [task.setvariable variable = agent.proxyurl;]”')并且工作。 – ssloan

相关问题