前言
通常我們在開發.NET專案時,若因為專案中有使用到公司內部的Library時,通常都會架設Private Nuget Server來進行套件添加。
而一般來說添加套件來源的方式大多都是在 Nuget管理員的介面中選擇添加的目錄夾或是Url來操作。
但這樣的方式如果實現CI/CD時,則會遇到找不到套件來源的問題,原因是Jenkins是直接將Github上的專案Clone下來進行建置與部署。
但我們設定套件來源的時機則是在專案Clone後手動開啟Nuget管理員添加的。
因此本篇主要會教學如何透過幾種方式讓Jenkins能夠讀的到自訂的Nuget套件來源。
建立Nuget.config
我們可以在方案的根目錄下輸入以下指令進行Nuget範本建立(或直接新增檔案輸入也可以)
1 | dotnet new nugetconfig |
這時候會在當前目錄下建立一個 nuget.config 其內容如下:
1 |
|
因此我們可以透過 add的方式,手動將私有的套件來源加上
1 | <add key="來源名稱" value="來源網址" /> |
完成後關閉專案再重新啟動,就會發現Nuget的套件來源已經自動補上在config設定的自訂來源了。
在機器上手動添加全域套件來源
剛剛有提到.NET其實預設在 %AppData%\NuGet\nuget.config
有全域的設定檔
這也就是為什麼 Jenkins可以直接執行那些Nuget的套件,但是自訂來源的套件卻無法執行的原因。
因此我們也可以在部署的機器上手動添加自訂來源:
1 | dotnet nuget add source <來源網址> -n <自訂名稱> |
但這個方式不太建議,除了每一台機器都要手動添加以外,也需要同步管理每一個的Nuget package list,因此如果都用config的話,就可以一目瞭然了。
以上文章敘述如有錯誤及觀念不正確,請不吝嗇指教:)
有任何家教、案子 或技術相關問題 請都歡迎聯繫我