Jenkins:nuget restore 須留意 nuget.config 設定檔位置

RojerChen.2021.03.04

「奇怪,我不是已經改了 nuget.config 了嗎?為什麼使用 Jenkins 跑 nuget restore 還是會連到api.nuget.org?」

「因為執行nuget restore 的帳號不一樣」

首先,我們先來了解一下 nuget 指令,執行 nuget config /? 


依據說明,當我們在執行 nuget restore 的時候,會預設讀取 %AppData%\NuGet\NuGet.config 
也就是 C:\Users\rojerchen\AppData\Roaming\NuGet\NuGet.config

但是當你使用 Jenkins 來執行的時候,使用的帳號是「nt authority\system」而不是「rojerchen」,而相對設定檔的路徑就變成 C:\WINDOWS\system32\config\systemprofile\AppData\Roaming\NuGet\NuGet.config


這也就是為什麼不論我樣調整設定檔,最終都還是會連到 api.nuget.org。

只不過這樣要再去改環境設定檔也挺麻煩的,比較建議還是在 nuget restore 的時候,直接指定 nuget.config ,這樣日後重新安裝 Jenkins 環境,就不需要額外再設定。

 ※延伸閱讀

Jenkins not restoring NuGet packages with new MSBuild restore target

    Blogger Comment

0 意見: