Code block

Google Code Prettify + AD Sense

2018年7月13日 星期五

NuGet 設定 Proxy - Windows

說明

在企業的程式開發協同作業上,微軟強力推薦Azure雲端的VSTS (Visual Studio Team Services),但是企業有時會因為法令、政策的考量,部分企業仍會選擇地端的TFS。
目前我所任職的公司使用TFS 2018,但它的 Build Agent 在組建程式的時候會使用NuGet連接網路下載套件。
而位處於封閉網路內的TFS僅能透過Proxy下載套件,因此需要調整NuGet的設定,讓NuGet可透過Proxy進行下載。

調整方式

針對 NuGet 使用 Proxy有三種層級可以設定 (如同 Dot Netframework 一樣),個人是使用「使用者層級」的設定,設定於 TFS Agent服務之啟動帳號中
參考文件:微軟文件庫 - 設定 NuGet 行為
範圍 NuGet.Config 檔案位置 描述
專案
Project
目前的資料夾 (也稱為專案資料夾) 或最高到磁碟機根目錄的任何資料夾。 在專案資料夾中,設定僅適用於該專案。

在包含多個專案子資料夾的父資料夾中,設定適用於這些子資料夾中的所有專案。
使用者
User
Windows:%appdata%\NuGet\NuGet.Config
Mac/Linux:~/.config/NuGet/NuGet.Config~/.nuget/NuGet/NuGet.Config (依 OS 發行版本而異)
設定適用於所有作業,但會覆寫為任何「專案層級」設定。
電腦
Computer
Windows:%ProgramFiles(x86)%\NuGet\Config
Mac/Linux:$XDG_DATA_HOME。 如果$XDG_DATA_HOME為 Null 或空白,則會使用~/.local/share/usr/local/share (依 OS 發行版本而異)
設定適用於電腦上的所有作業,但會覆寫為任何「使用者」或「專案層級」設定。

NuGet.config使用Proxy之設定內容:
<configuration>
  <!-- Proxy設定開始 -->
  <config>
  <add key="http_proxy" value="http://my.proxy.address:port " />
  <add key="https_proxy" value="https://my.proxy.address:port " />
  <add key="no_proxy" value="*.domain1.com,*.domain2.com" />
  <!-- <add key="http_proxy.user" value="myDomain\myUserID" /> -->
  <!-- <add key="http_proxy.password" value="密碼經過base64編碼後之產出字串" /> -->
  </config>
  <!-- Proxy設定結束 -->
</configuration> 

沒有留言:

張貼留言