前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >NuGet 修改包路径

NuGet 修改包路径

作者头像
丹枫无迹
发布2019-11-20 17:01:16
2.2K0
发布2019-11-20 17:01:16
举报
文章被收录于专栏:学无止境

NuGet 是 .NET 平台下的一个免费、开源的包管理开发工具。

修改全局包管理目录

通过 NuGet 安装包时,NuGet 先将包下载至一个统一的目录,默认路径是:C:\Users\用户名\.nuget\packages

下载的包多了以后,会导致 C 盘空间被大量占用。我们可以通过修改配置将其指定到自定义的目录下。

搜索 NuGet.Config 文件,默认位置是:C:\Users\用户名\AppData\Roaming\NuGet,在根节点下添加如下配置:

代码语言:javascript
复制
<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 目录下的对应包中。)

如果每个项目下都有一个 packages,会导致硬盘中有大量重复的包文件,让人非常的不爽。可以通过配置,让项目引用同一个目录下的包文件。

例如你的项目都是在 D:\src 目录下,你想将其中的所有项目的包文件都放在 D:\src\packages 目录下,目录结构如下:

代码语言:javascript
复制
D:\src
 |-- Soluation A
 |-- Soluation B
 |-- Soluation C
 |-- packages

D:\src 目录下新建一个 NuGet.config 文件,在其中添加如下内容:

代码语言:javascript
复制
<?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

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2019-11-20 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 修改全局包管理目录
  • 修改项目中的包路径
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档