2017-10-17 83 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

相關問題