终于找到了:NuGet 修改包路径
NuGet 是 .NET 平台下的一个免费、开源的包管理开发工具。
修改全局包管理目录
通过 NuGet 安装包时,NuGet 先将包下载至一个统一的目录,默认路径是:C:Users用户名.nugetpackages
下载的包多了以后,会导致 C 盘空间被大量占用。我们可以通过修改配置将其指定到自定义的目录下。
搜索 NuGet.Config 文件,默认位置是:C:\Users\用户名\AppData\Roaming\NuGet,在根节点下添加如下配置:
<config>
<addkey="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 目录下,目录结构如下:
D:src
| -- Soluation A
| -- Soluation B
| -- Soluation C
| -- packages
在 D:\src 目录下新建一个 NuGet.config 文件,在其中添加如下内容:
<?xml version="1.0"encoding="utf-8"?>
<configuration>
<solution>
<!-- 默认不将 packages 提交到源代码管理 -->
<addkey="disableSourceControlIntegration"value="true"/>
</solution>
<config>
<!-- 指定这个目录下默认的 packages 目录 -->
<addkey="repositorypath"value="D:\srcpackages"/>
</config>
<packageRestore>
<!-- 默认启用 packages 还原 -->
<addkey="enabled"value="True"/>
</packageRestore>
</configuration>
这样,在这个目录内的项目中使用 NuGet 时,NuGet 会检测这个配置文件并读取里面的配置信息,如果子目录内也有 NuGet.config 文件,那么 NuGet 会自动将子目录内的配置与上级目录的配置合并,存在相同的配置时,以子目录内的配置优先。
参考文章:
https://beginor.github.io/2013/03/31/nuget-custom-package-repository-location.html
https://www.cnblogs.com/gl1573/archive/2019/11/20/11896045.html
如何移动 nuget 缓存文件夹。
因为 nuget 文件夹一般比较大,现在我的 nuget 文件夹有 10 G,默认的 nuget 文件夹是在C盘,所以需要移动他。
可以使用下面的代码查看 nuget 全局缓存文件所在的文件夹
nuget locals all -list
可以看到下面的输出
packages-cache: C:\Users\user\AppData\Local\NuGet\Cache #NuGet 2.x cache
http-cache: C:\Users\user\AppData\Local\NuGet\v3-cache #NuGet 3.x+ cache
temp: C:\Users\user\AppData\Local\Temp\NuGetScratch #Temp folder
global-packages: C:\Users\user\.nuget\packages\ #Global packages folder
这样可以看到,所在的全局缓存文件夹是放在 C 盘,那么我提供两个方法可以修改
方法1.修改链接
可以使用管理员权限运行 PowerShell 来进行文件夹链接,首先复制 nuget 的 package 文件夹到 另外的地方,我移动到D:\lindexi\packages,所以就可以使用下面代码把 nuget 文件夹移动到另一个文件夹
mklink /d C:\Users\lindexi\.nuget\packages D:\lindexi\packages
在使用这个代码之前,需要删除 C:\Users\lindexi\.nuget\packages 请把这个字符串修改为自己的 nuget 文件夹
方法2.配置
除了上面的方法,还可以通过修改配置,修改全局文件夹
打开 %AppData%\NuGet\NuGet.Config ,在这个文件夹添加下面代码
<configuration>
<config>
<add key="globalPackagesFolder" value="D:\lindexi\packages" />
</config>
</configuration>
请把移动的nuget 文件夹修改为你自己的文件夹
<?xml version="1.0" encoding="utf-8"?>
<configuration>
<packageSources>
<add key="nuget.org" value="https://api.nuget.org/v3/index.json" protocolVersion="3" />
<add key="cnblog" value="https://nuget.cnblogs.com/v3/index.json" />
</packageSources>
<packageRestore>
<add key="enabled" value="True" />
<add key="automatic" value="True" />
</packageRestore>
<bindingRedirects>
<add key="skip" value="False" />
</bindingRedirects>
<packageManagement>
<add key="format" value="0" />
<add key="disabled" value="False" />
</packageManagement>
<disabledPackageSources>
<add key="Microsoft Visual Studio Offline Packages" value="true" />
</disabledPackageSources>
<config>
<add key="globalPackagesFolder" value="D:\Users\linde\.nuget\packages" />
</config>
</configuration>
NuGet Cache默认路径
Mac
~/.local/share/NuGet/Cache
~/.nuget/packages
Windows
%LocalAppData%\NuGet\Cache
%UserProfile%\.nuget\packages
Linux
~/.local/share/NuGet/Cache
~/.nuget/packages
NuGet Configuration默认路径
Mac ~/.config/NuGet/NuGet.Config
Windows %AppData%\NuGet\NuGet.Config
Linux ~/.config/NuGet/NuGet.Config
参见:NuGet File Locations - Matt Ward
终于找到了:NuGet 修改包路径相关推荐
- Android+Eclipse修改包路径
在开发过程中发现之前定的包名或是路径不太合理,怎么修改呢?选中要修改的包,按F2按键,如下图: 图1 上图是我修改后的,修改前的包名是com.example.appcenter,自改为com.exam ...
- 从零开始制作 NuGet 源代码包(全面支持 .NET Core / .NET Framework / WPF 项目)
默认情况下,我们打包 NuGet 包时,目标项目安装我们的 NuGet 包会引用我们生成的库文件(dll).除此之外,我们也可以专门做 NuGet 工具包,还可以做 NuGet 源代码包.然而做源代码 ...
- svn小乌龟怎么断开链接,怎么查看电脑中的隐藏文件,svn复制包或修改包名应注意什么
今天svn提交代码遇到了一个摸索了几个小时的麻烦. 由于我在写代码时有修改包名的情况,而且修改包名之前也已经提交过这部分代码.于是当我再次提交时就出现了代码冲突,由于不懂svn的merge操作,加上没 ...
- 【Android 应用开发】Android 工程修改包名流程 ( 修改 applicationId | 修改 package | 修改 R 资源引用 | 修改 BuildConfig 引用 )
文章目录 一. Android 工程修改包名流程 二. 修改 applicationId 三. 修改 package 包名 四. AndroidManifest.xml 清单文件组件 五. 修改 R ...
- mysql在计算机管理中的路径怎么修改_Rstudio中修改工作路径的三种方法
原文链接: Rstudio中修改工作路径的三种方法_weixin_44370085的博客-CSDN博客_rstudio改变工作目录blog.csdn.net Rstudio中修改工作路径的三种方法 ...
- Mac下 javac java 进行编译和运行含有包路径及引入jar包的类
近两天因为刚入职,属于熟悉环境的阶段,研究了下算法(第四版),当不使用IDE工具直接使用终端进行javac 编译带有包的类,然后使用java 会出现如下错误提示: 使用谷歌搜索了很久,终于找到解决的办 ...
- Nuget官方包源问题
在学习MVC中需要安装分页包 遇到NuGet问题 下面来看两种出现的情况 点击Online应该出 ...
- slf4j-log4j12加log4j自定义配置包路径日志输出
项目日志在定位问题原因上起着重要的作用,有用的日志输出能提高解决问题的效率,所以日志配置还是很关键的,对一个项目来说有用的日志包路径一般都是项目自己包路径下的日志,集成的框架和依赖包中的包路径下的日志 ...
- 【3】npm run build Vue的项目,如何修改相对路径配置
如果静态文件不是部署在网站根目录下,vue-cli将给你造成巨大的麻烦,你不能直接把build好的文件抛进一个目录,你不能直接在本地打开用vue做好的静态网站.改成相对路径,主要需要做两步: 1.修改 ...
最新文章
- “轻雀会议”跨越社交的“云沟通”
- 修复mysql数据库供应商_修复MYSQL数据库
- 科技部5个6G重点项目
- New ADODB.Connection ADOX.Catalog 提示user-defined type not defined
- 调参神器贝叶斯优化(bayesian-optimization)实战篇
- 2014 ACM/ICPC Asia Regional Xi'an Online
- 矢量合成和分解的法则_力的合成与分解
- dumpe2fs命令详解
- 64位电脑 装32位oracle,64位Windows可以安装32位的Oracle吗
- angular 注入器配置_Angular 的服务逻辑
- [总结]FDM 3D打印机DIY实践
- 华硕win10键盘失灵_华硕笔记本键盘失灵怎么办win10(Win10的键盘失灵解决办法)...
- 科隆OPTIFLUX2100W/4100C分体式电磁流量计维修
- live555 RTSP服务器与客户端通信源码分析
- Hyperledge Fabric-身份与角色认证
- 新书推荐 |《深入浅出Serverless:技术原理与应用实践》
- 青岛如何线上提取青岛公积金
- 祝你一路顺风_吴奇隆_酷音小伟编曲_C调简单版
- Part 1: 3.1 时序逻辑~3.2 flip flop 触发器寄存器
- mac苹果电脑删除顽固残留软件图标
热门文章
- 中国经济怎么办之我见
- 2019 DDCTF 部分writeup
- Vijos——T 1629 八
- 关于64位Linux配置android开发环境出现 No such file or directory
- [转]Win7 系统安装VS2008没反应 点击安装一闪就没有反应 .
- Depth-first Search深度优先搜索专题7
- 微信开发者工具 wxmi修改模版颜色_网站建设公司讲解:微信小程序的开发者工具界面...
- boot返回码规范 spring_sprigboot-new-coding-standards
- sql空字符串判断函数_access常用的内置函数
- 10年老电脑如何提速_电脑越用越卡?如何简单升级,让你的旧笔记本瞬间提速...