2012-02-10 80 views
67

我發現NuGet允許從1.4版本開始進行代理設置配置。但是,我找不到任何命令行示例。代理後面的NuGet

我想運行一些構建和NuGet無法連接。

如何在命令行中配置代理設置?

+1

爲了其他用戶遇到代理問題的好處:如果NuGet顯示消息:「遠程名稱無法解析:'nuget.org'」,您將會知道它可能是代理「」 – pduncan 2013-07-24 17:28:25

+3

小心檢查「 http_proxy'和'https_proxy'環境變量以及您的系統代理設置 – 2015-07-22 15:53:27

+0

github上存在一個問題: https://github.com/NuGet/Home/issues/458 – thekip 2015-08-11 20:39:51

回答

5

我可能是錯的,但我認爲它使用IE的代理設置。

如果看到您需要登錄,會打開一個對話框,並要求您這樣做(即登錄)。

請在這裏看到這樣的說明 - >http://docs.nuget.org/docs/release-notes/nuget-1.5

+0

它的確如此 - 這種方法的問題當您的公司的組策略不斷將您的IE設置恢復爲不適用於Nuget的那些設備時,就像在我的工作地點 – Xcalibur 2016-11-07 04:50:41

18

也許你可以試着給你的devenv.exe.config

<system.net> 
    <defaultProxy useDefaultCredentials="true" enabled="true"> 
     <proxy proxyaddress="http://proxyaddress" /> 
    </defaultProxy> 
    <settings> 
     <servicePointManager expect100Continue="false" /> 
     <ipv6 enabled="true"/> 
    </settings> 
</system.net> 

我發現它從NuGet Issue tracker

有也是關於NuGet +網絡問題的其他有價值的評論。

+2

中發生的那樣,但是這裏假設安裝了devenve.exe(它是Visual Studio),它不應該在構建服務器 – 2014-08-01 20:47:23

0

嘗試this。基本上,如果你的系統不信任nuget證書,連接可能會失敗。

125

以下是我爲使用NTLM身份驗證的公司代理所做的工作。我下載NuGet.exe,然後運行下面的命令(這是我在評論中發現this discussion CodePlex上):

nuget.exe config -set http_proxy=http://my.proxy.address:port 
nuget.exe config -set http_proxy.user=mydomain\myUserName 
nuget.exe config -set http_proxy.password=mySuperSecretPassword 

這把在位於%appdata%\NuGet(映射到ç我NuGet.config如下:\用戶\ MyUserName輸入\應用程序數據\我的Windows 7機器上漫遊):

<configuration> 
    <!-- stuff --> 
    <config> 
     <add key="http_proxy" value="http://my.proxy.address:port" /> 
     <add key="http_proxy.user" value="mydomain\myUserName" /> 
     <add key="http_proxy.password" value="base64encodedHopefullyEncryptedPassword" /> 
    </config> 
    <!-- stuff --> 
</configuration> 

順便說一句,這也是固定我的問題與只的NuGet工作我第一次打了包源在Visual梭哈IO。

注意一些誰也嘗試過這種方法已經通過的意見,他們已經能夠省略命令行設置http_proxy.password鍵,或後的,其實從配置文件中刪除的報道,並且仍然能夠通過代理實現NuGet功能。

如果找到,但是,你必須指定的的NuGet配置文件密碼,請記住,你必須在命令行更新中的NuGet配置存儲的密​​碼,當您更改網絡登錄,如果您的代理憑證也是您的網絡憑證

+0

NuGet命令行未將條目添加到我的NuGet.con無花果文件,但一旦我手動編輯文件,它的工作很好。 – pduncan 2013-07-24 17:25:14

+0

它工作完美,謝謝你救了我! – Juan 2014-02-24 10:14:58

+10

在我的情況下,我完全省略了** http_proxy.password **鍵,似乎很高興通過我的身份驗證AD憑據。這節省了經常更改密碼的必要性。 – 2014-06-18 09:59:39

7

如果您使用https版本的nuget(https://www.nuget.org),請注意您必須使用https設置值。

  • https_proxy
  • https_proxy。用戶
  • https_proxy.password
+1

如果您遵循arcains指南,但使用https – dmce 2014-05-30 13:18:41

+0

,則https密碼在nuget.config中爲純文本,而不是necro,但這完全解決了我的問題。謝謝! – Bcbury 2015-09-09 20:21:29

+0

這解決了我的問題,更多細節在這裏https://github.com/NuGet/Home/issues/5980。 – jpierson 2017-10-09 18:31:57

0
從@arcain我有以下的Windows Azure內容交付網絡的網址添加到我們的代理服務器的建議

Apart的白名單:

.msecnd.net 
1

另一番風味對於相同的「代理對的NuGet」:或者你可以設置你的NuGet代理方式的設置,通過fiddler連接。下面CMD將在默認的NuGet配置文件保存代理服務器設置爲用戶的%APPDATA%\的NuGet \ NuGet.Config

的NuGet配置 - 設置HTTP_PROXY = http://127.0.0.1:8888

每當你需要的NuGet伸手互聯網,只是打開Fiddler,asumming你有小提琴手監聽默認端口8888

這個配置上不是passwork的變化很敏感,因爲小提琴手將解決與爲你流代理的任何認證。

1

只是一個小除了...

如果你的作品只提供HTTP_PROXY設置,而不是用戶名和密碼,我建議把代理服務器設置在項目當地nuget.config文件並提交來源控制。這樣所有團隊成員都可以獲得相同的設置。

創建一個空的\ nuget.config

<?xml version="1.0" encoding="utf-8"?> 
    <configuration> 
    </configuration> 

然後:

nuget config -Set http_proxy="http://myproxy.example.com:8080" -ConfigFile .\Nuget.Config 

,最後提交新項目的本地Nuget.config文件。

4

對於任何使用VS2015:我遇到一個「需要407代理服務器身份驗證」的錯誤,這打破了我的構建。經過幾個小時的調查,事實證明,當試圖下載Nuget作爲'DownloadNuGet'目標的一部分時,MSBuild沒有發送證書。解決的辦法是將以下XML添加到C:\ Program Files文件(x86)的\的MSBuild \ 14.0 \斌\ MSBuild.exe.config的<configuration>的元素:

<system.net> 
      <defaultProxy useDefaultCredentials="true"> 
      </defaultProxy> 
</system.net> 
+0

非常好,爲我工作,很好很簡單,謝謝。 – DaveInCaz 2017-05-01 15:14:12

0

以上內容由@arcain加上下面的步驟解決方案我的問題

  1. 修改下NuGet包管理器設置的「包源」,以檢查 複選框使用nuget.org設置解決了我的問題。

  2. 我也改爲使用(nuget.org)作爲包源
    的第一選擇我並取消我公司包的來源,以確保在的NuGet總是挑 環球資源了。

0

對我來說,解決方案是包含

<add key="http_proxy" value="http://<IP>:<Port>" /> 
<add key="http_proxy.user" value="<user>" /> 
<add key="http_proxy.password" value="<password>" /> 

nuget.config文件。

2

也許這可以幫助別人。對我來說,解決方案是在Visual Studio(2015/2017)上打開NuGet設置並添加一個新的提要URL:http://www.nuget.org/api/v2/

我不必更改任何代理相關的設置。