Nuget包缓存存放位置迁移

本文介绍了如何通过环境变量修改Nuget包缓存的存放位置。

一、背景

默认情况下,NuGet会将项目中使用的包缓存到C盘,随着项目开发积累nuget包越来越多,这会逐渐挤占大量C盘空间,所以我们可以将nuget包缓存位置指定到其他盘中存放。

二、软件环境

win10、vs2022

三、查看当前缓存存放位置

在cmd中执行如下命令,可以查看当前nuget包缓存存放的位置

dotnet nuget locals all --list

执行结果:

四、缓存介绍

可以看到nuget相关缓存有4种,具体介绍可以参考官网说明

名称 说明和位置(每个用户)
global-packages global-packages 文件夹是 NuGet 安装任何下载包的位置。 每个包完全展开到匹配包标识符和版本号的子文件夹。 使用 PackageReference 格式的项目始终直接从该文件夹中使用包。 使用 packages.config 时,包将安装到 global-packages 文件夹,然后复制到项目的 packages 文件夹。 * Windows: %userprofile%\.nuget\packages * Mac/Linux:~/.nuget/packages * 使用 NUGET_PACKAGES 重写环境变量 globalPackagesFolderrepositoryPath配置设置(分别在使用 PackageReference 和 packages.config 时)或 RestorePackagesPath MSBuild 属性(仅限 MSBuild)。 环境变量优先于配置设置。
http-cache Visual Studio 包管理器 (NuGet 3.x+) 和 dotnet 工具存储此缓存中下载包的副本(另存为 .dat 文件),这些副本被组织到每个包源的子文件夹中。 未展开包,且缓存中有 30 分钟的到期时间。 * Windows: %localappdata%\NuGet\v3-cache * Mac/Linux:~/.local/share/NuGet/v3-cache * 使用 NUGET_HTTP_CACHE_PATH 环境变量替代。
temp NuGet 在各操作期间在其中存储临时文件的文件夹。 * Windows: %temp%\NuGetScratch * Mac:/tmp/NuGetScratch * Linux:/tmp/NuGetScratch<username> * 使用 NUGET_SCRATCH 环境变量替代。
plugins-cache 4.8 + NuGet 存储来自操作声明请求的结果的文件夹。 * Windows: %localappdata%\NuGet\plugins-cache * Mac/Linux:~/.local/share/NuGet/plugins-cache * 使用 NUGET_PLUGINS_CACHE_PATH 环境变量替代。

五、缓存路径配置

依据官方说明文档,我们可以使用环境变量去配置这4种缓存的存放位置

根据自己的喜好在指定的目录创建好对应的文件夹,并创建4个如下环境变量:

bash 复制代码
NUGET_HTTP_CACHE_PATH
D:\LocalCache\nuget\v3-cache

NUGET_PACKAGES
D:\LocalCache\nuget\packages

NUGET_PLUGINS_CACHE_PATH
D:\LocalCache\nuget\plugins-cache

NUGET_SCRATCH
D:\LocalCache\nuget\NuGetScratch

六、缓存迁移

配置完成以后,将旧路径下的缓存文件剪切到新路径下即可

http-cache : C:\Users\用户名\AppData\Local\NuGet\v3-cache→D:\LocalCache\nuget\v3-cache
global-packages : C:\Users\HONOR\.nuget\packages\→D:\LocalCache\nuget\packages
temp :C:\Users\HONOR\AppData\Local\Temp\NuGetScratch→D:\LocalCache\nuget\NuGetScratch

plugins-cache :C:\Users\HONOR\AppData\Local\NuGet\plugins-cache→D:\LocalCache\nuget\plugins-cache

相关推荐
Pasregret2 小时前
多级缓存架构深度解析:从设计原理到生产实践
缓存·架构
我的golang之路果然有问题4 小时前
快速了解redis,个人笔记
数据库·经验分享·redis·笔记·学习·缓存·内存
道友老李5 小时前
【存储中间件】Redis核心技术与实战(五):Redis缓存使用问题(BigKey、数据倾斜、Redis脑裂、多级缓存)、互联网大厂中的Redis
redis·缓存·中间件
绿算技术12 小时前
存储新势力:助力DeepSeek一体机
人工智能·科技·缓存·fpga开发
zru_960218 小时前
Docker 部署 Redis:快速搭建高效缓存服务
redis·缓存·docker
axinawang18 小时前
springboot整合redis实现缓存
spring boot·redis·缓存
for6220 小时前
本地缓存大杀器-Caffeine
缓存·caffeine·本地缓存
听闻风很好吃1 天前
Redis高级数据类型解析(二)——Set、Sorted Set与Geo实战指南
数据库·redis·缓存
陈大大陈1 天前
基于 C++ 的用户认证系统开发:从注册登录到Redis 缓存优化
java·linux·开发语言·数据结构·c++·算法·缓存
编程在手天下我有1 天前
缓存与数据库数据一致性:旁路缓存、读写穿透和异步写入模式解析
数据库·缓存·oracle·软件开发·架构设计·数据一致性