通過VS下載的NuGet包,如何修改其下載存放路徑?
一、了解NuGet包的默認存放路徑
我們通過NuGet包管理器下載的引用包,默認是存放在C盤的,存儲路徑一般是:
C:\Users\{系統用戶名}\.nuget\packages
二、為什麼需要修改NuGet包的默認存放路徑?
最直接的答案便是——節省C盤存儲資源,減緩C盤飈紅速度。
我們都知道,C盤的存儲資源是有限的,而隨著我們開發的項目越來越多,所引用的NuGet包自然而然也是越來越多。如果我們不做清理,這些文件會一直佔據C盤的存儲空間,讓本就不富裕的C盤雪上加霜,而我們定時清理的話,下一次打開項目時會出現引用丟失找不到的情況,或者VS又重新下載引用包文件,簡直是費時費力不討好。
這時就有小夥伴要問了,我們能不能把下載的NuGet包存放在C盤之外的其他盤中嗎?答案是當然可以。
三、更改下載的NuGet包存儲位置
1、根據下述文件路徑,找到一個名為「NuGet.Config」的文件,或者通過搜索,直接查找該文件。
C:\Users\{系統用戶名}\AppData\Roaming\NuGet
2、打開「NuGet.Config」這個文件,我們可以看到原始的文件內容如下所示:
<?xml version="1.0" encoding="utf-8"?>
<configuration>
<packageSources>
<add key="nuget.org" value="//api.nuget.org/v3/index.json" protocolVersion="3" />
</packageSources>
</configuration>
3、將其內容替換為以下內容並保存:
<?xml version="1.0" encoding="utf-8"?>
<configuration>
<packageSources>
<add key="nuget.org" value="//api.nuget.org/v3/index.json" protocolVersion="3" />
</packageSources>
<!--新增的內容-->
<config>
<!--默認全局包文件夾的位置。【僅使用 PackageReference 的 globalPackagesFolder (項目)】-->
<add key="globalPackagesFolder" value="你想要NuGet包存放的新路徑" />
<!--安裝 NuGet 包的位置,而非默認的 $(Solutiondir)/packages 文件夾。【僅限於 packages.config】 -->
<add key="repositoryPath" value="你想要NuGet包存放的新路徑" />
</config>
</configuration>
四、修改VS離線包引用地址
1、根據下述文件路徑,找到一個名為「Microsoft.VisualStudio.Offline.config」的文件,或者通過搜索,直接查找該文件。
C:\Program Files (x86)\NuGet\Config
2、打開「Microsoft.VisualStudio.Offline.config」這個文件,我們可以看到原始的文件內容如下所示:
<?xml version="1.0" encoding="utf-8"?>
<configuration>
<packageSources>
<add key="Microsoft Visual Studio Offline Packages" value="C:\Program Files (x86)\Microsoft SDKs\NuGetPackages\"/>
</packageSources>
</configuration>
3、將其內容替換為以下內容並保存:
<?xml version="1.0" encoding="utf-8"?>
<configuration>
<packageSources>
<add key="Microsoft Visual Studio Offline Packages" value="你想要NuGet包存放的新路徑"/>
</packageSources>
<!--新增的內容-->
<config>
<add key="globalPackagesFolder" value="你想要NuGet包存放的新路徑" />
</config>
</configuration>
五、驗證修改的新路徑是否成功
用VS重新打開某一項目,將項目中的某個引用包卸載後重新安裝,在項目引用列表中找到這個引用項,右鍵打開屬性面板,在「路徑」一欄中我們可以清晰的發現引用的地址已經變成了我們剛剛設置的新地址。
——————————-本篇文章到此結束————————————-