文章目錄
關於指定 NuGet 安裝資料夾
之前文章 指定 NuGet packages 存放位置,有介紹如何修改 NuGet 套件的安裝目錄,後來同事測試後有更簡單的做法,因此紀錄一下
使用設定檔的做法相同,但步驟簡易不少,主要目的還是為了避免相同套件被各專案重複下載並佔用無謂的磁碟空間
在 Solution 中加入 NuGet.config
透過 Visual Studio 在 Solution 這層加入 NuGet.config 指定 NuGet package 路徑
直接加入 NuGet.config
Solution 上按右鍵 –> Add –> New Item…
搜尋
xml
–> 使用XML File
–> 指定檔名為NuGet.config
修改
NuGet.config
<?xml version="1.0" encoding="utf-8" ?> <configuration> <config> <add key="repositoryPath" value="C:\NuGetPackages" /> </config> </configuration>
加入結果
先新增資料夾,再加入 NuGet.config
資料夾名稱僅作為識別用,無實際作用,名稱也沒有限制
Solution 上按右鍵 –> Add –> New Solution Folder…
接著加入檔案方式與直接加入 NuGet.config 相同
加入結果
重啟修改的專案(必要條件)
從檔案系統中加入 NuGet.config
在 Solution 的資料夾中加入 NuGet.config
- 直接加入 NuGet.config
先新增資料夾,再加入 NuGet.config
- 資料夾名稱 必需是
.nuget
- 加入 NuGet.config
- 資料夾名稱 必需是
重啟修改的專案(必要條件)
兩者功能完全相同
- 僅在 Visual Studio 顯示上有差異
實際在檔案系統中兩者行為完全一樣
都會在
.sln
同層位置加上NuGet.config
,不會額外建立資料夾透過 Restore NuGet Packages 將套件下載至指令位置
其他可以設定的位置
全域 config
%APPDATA%\NuGet\NuGet.Config
- 可以使用
nuget -configFile
來指定不同 config 檔案
- 可以使用
machine 等級 config
NuGet 2.6 to NuGet 3.5
%ProgramData%\NuGet\Config[\{IDE}[\{Version}[\{SKU}\]]]NuGet.Config
- {IDE} 是 VisualStudio
- {Version} 是 Visual Studio 版號(e.g. 14.0
- {SKU} 是版本 (e.g. Community, Pro, or Enterprise)
NuGet 4.0+
%ProgramFiles(x86)%\NuGet\Config
default config
NuGet 2.6 to NuGet 3.5
%PROGRAMDATA%\NuGet\NuGetDefaults.Config
NuGet 4.0+
%ProgramFiles(x86)%\NuGet\Config
心得
我實際測試下 Visual Studio 2015 與 Visual Studio 2017 行為皆相同,上述幾個方法都適用
行為與官方文件 - Configuring NuGet behavior 有落差:官方說 .nuget
的用法僅適用於 NuGet 3.3 及以前版本,但我測試 NuGet 4.1.0.2450 一樣可用;幾個預設 config 位置並不好找,檔案也不一定預設存在,不確定是文件上的問題還是行為正在調整
參考資訊
文章作者 Yowko Tsai
上次更新 2021-11-01
授權合約
本部落格 (Yowko's Notes) 所有的文章內容(包含圖片),任何轉載行為,必須通知並獲本部落格作者 (Yowko Tsai) 的同意始得轉載,且轉載皆須註明出處與作者。
Yowko's Notes 由 Yowko Tsai 製作,以創用CC 姓名標示-非商業性-相同方式分享 3.0 台灣 授權條款 釋出。