ToB企服应用市场:ToB评测及商务社交产业平台

标题: 如何修改NuGet默认全局包文件夹的位置? [打印本页]

作者: 商道如狼道    时间: 2023-7-21 04:04
标题: 如何修改NuGet默认全局包文件夹的位置?
由于一些历史原因,重装系统成为Windows用户解决疑难杂症的祖传手艺。受此影响,给硬盘分区几乎成为了一种执念,少则C、D两个盘,夸张一点的5~6个盘的也不是没有。
PS:macOS和Linux一直都不鼓励给磁盘分区,虽然不禁止但也不提倡。随着云技术和宽带的提升,越来越多的人更喜欢把自己认为比较重要的资料存储在云盘而不是本地磁盘,一是可以跨设备访问,二来也不担心突然有一天电脑损坏或者丢失。
前几天正在写代码的时候,突然收到一条IDE的提示,C盘空间不足!赶紧打开文件资源管理器看了一眼,喔嚯……C盘还剩足足1MB多的空间,没蓝屏算是给足我面子了。
接下来就是行云流水般的三板斧:
砍完之后,可用空间提升到了9GB。但是也不够啊,鬼知道什么时候又只剩1MB了?用TreeSize分析了一下C盘的使用情况,发现.nuget文件夹的大小超过了10GB,虽然我在项目里面做了一些配置,把当前项目用到的nuget包都存放在项目目录下,而不是默认的全局文件夹目录,但是依然有很多系统程序以及LinqPad安装的包会缓存到默认目录。
Windows默认的nuget包缓存路径是C:\Users\用户名.nuget\packages。
masOS是/Users/用户账号/.nuget/packages
清理历史版本可以腾出一些空间,但是治标不治本,如果某个程序或项目依赖于清理掉的版本,则可能被重新恢复或者干脆报错无法使用。那能不能把默认目录指定到其他盘呢?
肯定能!
方法一:修改全局配置文件

NuGet会在C:\Users\用户\AppData\Roaming\NuGet\生成一个NuGet.Config文件,这是nuget的全局配置文件,如果.net项目没有单独配置,则会使用全局配置恢复、缓存和读取依赖包。
用文本编辑器打开这个文件,内容如下:
  1. <?xml version="1.0" encoding="utf-8"?>
  2. <configuration>
  3.   <packageSources>
  4.     <add key="nuget.org" value="https://api.nuget.org/v3/index.json" protocolVersion="3" />
  5.   </packageSources>
  6. </configuration>
复制代码
如果想添加其他包源,可以在packageSources里面下增加相关节点:
  1. [/code]如果要修改全局包目录,需要在NuGet.config的config节点设置globalPackagesFolder(如果没有config节点,需要手动添加一个),配置后的完整内容如下:
  2. [code]<?xml version="1.0" encoding="utf-8"?>
  3. <configuration>
  4.   <packageSources>
  5.     <add key="nuget.org" value="https://api.nuget.org/v3/index.json" protocolVersion="3" />
  6.   </packageSources>
  7. </configuration>            
复制代码
下面是config支持的配置项:
  1. <?xml version="1.0" encoding="utf-8"?>
  2. <configuration>
  3.   <packageSources>
  4.     <add key="nuget.org" value="https://api.nuget.org/v3/index.json" protocolVersion="3" />
  5.   </packageSources>
  6. </configuration><?xml version="1.0" encoding="utf-8"?>
  7. <configuration>
  8.   <packageSources>
  9.     <add key="nuget.org" value="https://api.nuget.org/v3/index.json" protocolVersion="3" />
  10.   </packageSources>
  11. </configuration><?xml version="1.0" encoding="utf-8"?>
  12. <configuration>
  13.   <packageSources>
  14.     <add key="nuget.org" value="https://api.nuget.org/v3/index.json" protocolVersion="3" />
  15.   </packageSources>
  16. </configuration>
复制代码
方法二:设置环境变量

如果方法一不行,那就需要通过设置环境变量来指定全局包位置。



点关注,不迷路。
如果您喜欢这篇文章,请不要忘记点赞、关注、转发,谢谢!如果您有任何高见,欢迎在评论区留言讨论……


免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!




欢迎光临 ToB企服应用市场:ToB评测及商务社交产业平台 (https://dis.qidao123.com/) Powered by Discuz! X3.4