NuGet 是 .NET 平台下的一个免费、开源的包管理开发工具。html
经过 NuGet 安装包时,NuGet 先将包下载至一个统一的目录,默认路径是:C:\Users\用户名\.nuget\packages
git
下载的包多了之后,会致使 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