NuGet 修改包路徑

NuGet 是 .NET 平臺下的一個免費、開源的包管理開發工具。html

修改全局包管理目錄

經過 NuGet 安裝包時,NuGet 先將包下載至一個統一的目錄,默認路徑是:C:\Users\用戶名\.nuget\packagesgit

下載的包多了之後,會致使 C 盤空間被大量佔用。咱們能夠經過修改配置將其指定到自定義的目錄下。github

搜索 NuGet.Config 文件,默認位置是:C:\Users\用戶名\AppData\Roaming\NuGet,在根節點下添加以下配置:工具

<config>
  <add key="globalPackagesFolder" value="D:\packages" />
</config>

若是 NuGet.Config 不存在,也能夠在 C:\Program Files (x86)\NuGet\Config 目錄下新建一個 NuGet.Config,將該文件夾中的 Microsoft.VisualStudio.Offline.config 文件的內容複製到新建的 NuGet.Config 中,再在其中添加上述的節點。開發工具

修改項目中的包路徑

安裝包時,NuGet 會先搜索全局包管理目錄,若是須要安裝的包已經存在,則不會去 NuGet 網站下載,不存在時則會先將包下載至本地全局目錄下。網站

而後將全局包管理目錄下的包文件拷貝一份至當前項目下的 packages 文件夾中,並將相應 DLL 添加至項目引用。(你在全局包管理目錄下找一個包,在其中新建一個文本文件,而後在項目中經過 NuGet 安裝該包,你會發現你新建的這個文本文件也被複制到了項目的 packages 目錄下的對應包中。)lua

若是每一個項目下都有一個 packages,會致使硬盤中有大量重複的包文件,讓人很是的不爽。能夠經過配置,讓項目引用同一個目錄下的包文件。code

例如你的項目都是在 D:\src 目錄下,你想將其中的全部項目的包文件都放在 D:\src\packages 目錄下,目錄結構以下:xml

D:\src
 |-- Soluation A
 |-- Soluation B
 |-- Soluation C
 |-- packages

D:\src 目錄下新建一個 NuGet.config 文件,在其中添加以下內容:htm

<?xml version="1.0" encoding="utf-8"?>
<configuration>
  <solution>
    <!-- 默認不將 packages 提交到源代碼管理 -->
    <add key="disableSourceControlIntegration" value="true" />
  </solution>
  <config>
    <!-- 指定這個目錄下默認的 packages 目錄 -->
    <add key="repositorypath" value="D:\src\packages" />
  </config>
  <packageRestore>
    <!-- 默認啓用 packages 還原 -->
    <add key="enabled" value="True" />
  </packageRestore>
</configuration>

這樣,在這個目錄內的項目中使用 NuGet 時,NuGet 會檢測這個配置文件並讀取裏面的配置信息,若是子目錄內也有 NuGet.config 文件,那麼 NuGet 會自動將子目錄內的配置與上級目錄的配置合併,存在相同的配置時,以子目錄內的配置優先。

參考文章:

https://beginor.github.io/2013/03/31/nuget-custom-package-repository-location.html

相關文章
相關標籤/搜索