NuGet 是 .NET 平臺下的一個免費、開源的包管理開發工具,
修改全域包管理目錄
通過 NuGet 安裝包時,NuGet 先將包下載至一個統一的目錄,默認路徑是:C:\Users\用戶名\.nuget\packages
下載的包多了以后,會導致 C 盤空間被大量占用,我們可以通過修改配置將其指定到自定義的目錄下,
搜索 NuGet.Config 檔案,默認位置是:C:\Users\用戶名\AppData\Roaming\NuGet,在根節點下添加如下配置:
<config>
<add key="globalPackagesFolder" value=https://www.cnblogs.com/gl1573/p/"D:/packages" />
如果 NuGet.Config 不存在,也可以在 C:\Program Files (x86)\NuGet\Config 目錄下新建一個 NuGet.Config,將該檔案夾中的 Microsoft.VisualStudio.Offline.config 檔案的內容復制到新建的 NuGet.Config 中,再在其中添加上述的節點,
修改專案中的包路徑
安裝包時,NuGet 會先搜索全域包管理目錄,如果需要安裝的包已經存在,則不會去 NuGet 網站下載,不存在時則會先將包下載至本地全域目錄下,
然后將全域包管理目錄下的包檔案拷貝一份至當前專案下的 packages 檔案夾中,并將相應 DLL 添加至專案參考,(你在全域包管理目錄下找一個包,在其中新建一個文本檔案,然后在專案中通過 NuGet 安裝該包,你會發現你新建的這個文本檔案也被復制到了專案的 packages 目錄下的對應包中,)
如果每個專案下都有一個 packages,會導致硬碟中有大量重復的包檔案,讓人非常的不爽,可以通過配置,讓專案參考同一個目錄下的包檔案,
例如你的專案都是在 D:\src 目錄下,你想將其中的所有專案的包檔案都放在 D:\src\packages 目錄下,目錄結構如下:
D:\src
|-- Soluation A
|-- Soluation B
|-- Soluation C
|-- packages
在 D:\src 目錄下新建一個 NuGet.config 檔案,在其中添加如下內容:
<?xml version="1.0" encoding="utf-8"?>
<configuration>
<solution>
<!-- 默認不將 packages 提交到源代碼管理 -->
<add key="disableSourceControlIntegration" value=https://www.cnblogs.com/gl1573/p/"true" />
這樣,在這個目錄內的專案中使用 NuGet 時,NuGet 會檢測這個組態檔并讀取里面的配置資訊,如果子目錄內也有 NuGet.config 檔案,那么 NuGet 會自動將子目錄內的配置與上級目錄的配置合并,存在相同的配置時,以子目錄內的配置優先,
參考文章:
https://beginor.github.io/2013/03/31/nuget-custom-package-repository-location.html
轉載請註明出處,本文鏈接:https://www.uj5u.com/net/1711.html
上一篇:vs未能正確加載CSharpPackage包,未能正確加載“Microsoft.VisualStudio.Editor.Implementation.EditorPackage”包
下一篇:MFC程式出現uafxcwd.lib(afxmem.obj) : error LNK2005: "void * __cdecl operator new(unsigned int)解決辦法
