展开菜单
首页 精品内容 本月促销 装机必备 Windows PDF教程 macOS软件 IOS软件 Android AI 专题
全部分类

当前位置:

首页 > 编程开发 > Visual Studio2017修改NuGet包缓存存放路径

Visual Studio2017修改NuGet包缓存存放路径

Visual Studio Code macOS版
Visual Studio Code macOS版

Visual Studio Code 是微软提供的免费代码编辑器,支持 macOS,并为 Intel 与 Apple 芯片 Mac 提供适配版本。软件集代码编辑、调试、Git 源代码管理、集成终端和扩展市场于一体。

macOS 2026-10-13
数据库 编程开发 VS Code 服务器管理 装机必备
立即下载

本文详细介绍在Visual Studio 2017中修改NuGet包全局缓存存放路径的实用方案,包括修改全局NuGet.Config文件、配置系统环境变量以及利用NTFS目录联接进行透明迁移,并提供验证与旧缓存清理步骤。

本文目录

    在默认情况下,Visual Studio 2017 会将所有通过 PackageReference 引用的 NuGet 依赖项下载到系统盘的用户目录(C:\Users\<用户名>\.nuget\packages)。随着开发项目数量增加和依赖库频繁升级,该缓存目录常常迅速膨胀至数十吉字节(GB),成为导致 C 盘可用空间紧张的主要原因之一。解决该问题的核心路径十分明确:通过修改 NuGet 全局配置文件(NuGet.Config)中的 globalPackagesFolder 节点、或者设置系统环境变量 NUGET_PACKAGES,将全局包存放地址永久重定向到数据盘;亦或通过 Windows NTFS 目录联接(Junction)实现无感重定向。本文将详细讲解具体实施步骤、验证方法及迁移注意事项。

    一、Visual Studio 2017 的 NuGet 缓存存放机制

    在动手调整路径之前,需要明确 Visual Studio 2017 涉及的两套不同依赖管理模式与缓存分类:

    • 全局包缓存(global-packages):VS 2017 开始广泛使用 PackageReference 格式(.NET Core 及部分现代 .NET Framework 项目),下载的包会统一保存在全局缓存目录。默认路径为 %userprofile%\.nuget\packages。所有引用相同版本库的项目共享该文件,不再重复复制到工程目录下。
    • 解决方案级包目录(packages.config):若维护的是较早的传统 .NET Framework 项目,项目根目录同级会生成一个 packages 文件夹。该位置受配置项 repositoryPath 控制。
    • HTTP 缓存(http-cache):下载包时的元数据与压缩流缓存,默认存放于 %localappdata%\NuGet\v3-cache。

    因此,对于大多数开发者而言,占用空间最大的通常是 global-packages 目录。将其迁移至其他分区(例如 D:\NuGet\packages)是释放系统盘空间的关键操作。

    Visual Studio2017修改NuGet包缓存存放路径
    图 1:Visual Studio 2017 与 NuGet 依赖缓存存储架构及重定向示意图

    二、方法一:修改全局 NuGet.Config 文件(官方推荐)

    修改用户的全局 NuGet.Config 配置文件是最规范且推荐的方式。该配置文件控制当前登录用户所有使用 NuGet 的开发工具(包括 VS 2017、dotnet CLI 以及独立 nuget.exe)。

    1. 定位配置文件

    在 Windows 资源管理器地址栏输入以下路径并回车:

    %AppData%\NuGet\NuGet.Config

    对应物理完整路径通常为:C:\Users\<用户名>\AppData\Roaming\NuGet\NuGet.Config。如果该目录下尚未存在 NuGet.Config,可以在该位置新建一个文本文件并命名为 NuGet.Config。

    2. 添加配置节点

    使用文本编辑器(例如记事本或 VS Code)打开 NuGet.Config,在 根节点内部,添加或修改 节。完整示例如下:

    
    
      
        
        
        
        
      
      
        
      
    
    注意: XML 语法区分大小写,键名必须是 globalPackagesFolder,首字母 g 小写、P 与 F 大写;目标路径(如 D:\NuGet\packages)中建议使用英文字符和标准反斜杠,避免包含特殊符号或空格。

    3. 使用 NuGet 命令行快速写入(备选操作)

    如果不希望手动编辑 XML,也可以在命令提示符(cmd)中执行以下命令自动写入:

    nuget config -set globalPackagesFolder=D:\NuGet\packages

    该命令会自动定位并修改上述的 NuGet.Config 文件,避免因 XML 标签未闭合导致格式错误。

    Visual Studio2017修改NuGet包缓存存放路径
    图 2:修改全局 NuGet.Config 标准实施步骤流程图

    三、方法二:配置系统环境变量 NUGET_PACKAGES

    除修改配置文件外,NuGet 支持通过系统环境变量 NUGET_PACKAGES 覆盖默认全局包路径。该方法的优势在于对自动化构建环境、持续集成(CI/CD)以及多工具链环境拥有极高的适配度。

    1. 操作步骤

    1. 右键点击桌面或文件资源管理器的“此电脑”图标,选择“属性”。
    2. 在弹出的系统窗口左侧点击“高级系统设置”,随后点击“环境变量”按钮。
    3. 在“系统变量”(对全机所有用户生效)或“用户变量”(仅对当前用户生效)区域,点击“新建”:
      • 变量名:NUGET_PACKAGES
      • 变量值:D:\NuGet\packages(填入期望的物理目标路径)
    4. 连续点击“确定”保存退出。
    5. 必须完全退出并重新启动 Visual Studio 2017。由于环境变量由进程启动时从系统继承,不重启 VS 2017 则新变量无法生效。

    四、方法三:利用 NTFS 目录联接(mklink /J)

    如果当前开发环境存在一些老旧自定义构建脚本、或者第三方扩展固执地写死了 %userprofile%\.nuget\packages 路径,修改配置或环境变量可能会引发兼容性问题。此时,利用 Windows NTFS 文件系统的目录联接(Directory Junction)是最无感、最稳妥的解决方案。

    1. 操作原理与步骤

    目录联接能够在操作系统内核层面将指向 C 盘默认目录的访问请求透明导向 D 盘实际目录,对所有软件完全透明。

    1. 关闭 Visual Studio 2017 及其相关进程。
    2. 在目标盘创建存放目录,例如 D:\NuGet\packages。
    3. 如果原路径 C:\Users\<用户名>\.nuget\packages 中已有大量缓存,将其内部文件剪切迁移至 D:\NuGet\packages。
    4. 迁移完成后,必须删除原 C 盘下的 packages 文件夹(否则创建软链接时会报“当文件已存在时,无法创建该文件”错误)。
    5. 以管理员身份运行“命令提示符”(cmd),执行以下命令:
      mklink /J "C:\Users\<你的用户名>\.nuget\packages" "D:\NuGet\packages"

    创建成功后,命令提示符会输出:为 C:\Users\<用户名>\.nuget\packages <<===>> D:\NuGet\packages 创建的联接。在资源管理器中查看该目录时,图标上会带有一个快捷方式小箭头,其实际磁盘空间占用完全转移至 D 盘。

    Visual Studio2017修改NuGet包缓存存放路径
    图 3:三种路径重定向方案特性与选型决策对比图

    五、生效验证与磁盘空间清理

    完成上述配置后,必须通过标准化动作核验新路径是否生效,并彻底清理留在系统盘上的过期无用缓存,完成空间释放的闭环。

    1. 在 Visual Studio 2017 中验证

    1. 打开 Visual Studio 2017,依次点击顶部菜单:工具 (Tools) > 选项 (Options)。
    2. 在左侧树状列表中展开 NuGet 包管理器 (NuGet Package Manager) > 常规 (General)。
    3. 在右侧可以看到“清除所有 NuGet 缓存”按钮。点击该按钮可清除已有的临时包缓存。
    4. 新建或打开一个包含 NuGet 依赖的项目,在“解决方案资源管理器”中右键解决方案,点击“还原 NuGet 程序包”。
    5. 还原完成后,打开设定的目标目录(如 D:\NuGet\packages),确认内部是否正常生成了对应依赖包(如 Newtonsoft.Json 等)及其版本子文件夹。

    2. 使用命令行查询当前激活路径

    在开发人员命令提示符(Developer Command Prompt for VS 2017)中执行以下命令查看 NuGet 识别的位置:

    nuget locals all -list

    控制台将输出三类缓存的具体物理路径:

    http-cache: C:\Users\<用户名>\AppData\Local\NuGet\v3-cache
    global-packages: D:\NuGet\packages
    temp: C:\Users\<用户名>\AppData\Local\Temp\NuGetScratch

    若 global-packages 对应路径已成功变更为 D 盘地址,说明配置已完全生效。

    3. 安全删除原 C 盘历史缓存

    确认新路径已承接后续还原后,对于没有使用 mklink 方案的用户,可以直接将 C:\Users\<用户名>\.nuget\packages 目录内的文件夹全部清空。这一步通常能立即为 C 盘回收数 GB 至数十 GB 的宝贵空间。

    Visual Studio2017修改NuGet包缓存存放路径
    图 4:迁移生效核验与清理维护流程图

    六、常见问题与注意事项

    • 中文路径与空格问题:自定义路径中尽量避免包含中文或空格(如不要使用 D:\我的文档\NuGet)。虽然部分现代版本的 CLI 能够支持,但 VS 2017 内部部分早期构建任务工具链可能出现路径截断或转义异常。
    • 解决方案级 overrides:如果团队项目中包含 Directory.Build.props 文件并显式配置了 属性,则该工程级配置优先级高于全局 NuGet.Config。排查特定项目为何仍落入其他路径时应优先检索该属性。
    • 外置移动硬盘风险:切勿将缓存路径设置在可能随时拔出的移动硬盘或网络映射驱动器(NAS)上。若开发时驱动器盘符未就绪或断开,Visual Studio 2017 编译项目时会直接抛出找不到依赖项或无法写入文件的严重错误。
    本站声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系bd@zhengruan.com
    作者最新文章
    编程开发
    相关文章 更多
    精品专题 更多
    装机必备

    正软商城装机必备专区,精选办公、浏览器、安全防护、影音播放、压缩解压、设计创作和系统工具等电脑常用正版软件,帮助用户快速完成新电脑软件配置。

    Windows

    正软商城Windows软件专区,汇集适用于Windows电脑的办公、设计、安全防护、影音播放、开发工具和系统优化软件,提供软件介绍、系统要求、正版授权及购买下载服务。

    PDF教程

    正软商城PDF教程频道提供PDF编辑、转换、合并、拆分、压缩及格式处理方法,同时介绍常用PDF软件和工具的使用技巧。

    macOS软件

    正软商城macOS软件专区,精选适用于Mac电脑的办公、设计、影音、效率、开发和系统工具,提供软件功能介绍、macOS兼容版本、正版授权及购买下载服务。

    IOS软件

    正软商城iOS软件专区,精选适用于iPhone和iPad的办公、学习、影音、设计、效率及AI应用,提供功能介绍、适用设备、系统要求和正版获取方式等信息。

    AI

    正软商城AI软件专区,汇集AI写作、AI绘画、AI视频、AI办公、AI编程、AI翻译、智能客服和数据分析等人工智能工具,提供功能介绍、适用平台、收费方式及正版购买信息。

    Mac软件 更多
    Aperty macOS版
    Aperty macOS版

    Aperty 是 Skylum 推出的 AI 人像修图软件,支持自然肤质修饰、瑕疵处理、面部与身体调整、预设及批量同步。

    火山引擎 网页版
    火山引擎 网页版

    火山引擎是字节跳动旗下企业级云与AI服务平台。聚焦大模型核心能力,依托字节自研豆包多模态大模型,凭借火山方舟一站式平台,提供模型精调、推理部署、智能应用搭建等全链路服务,结合高性能AI算力,助力各行业快速落地大模型数字化与智能化应用。

    立刻MV 网页版
    立刻MV 网页版

    立刻MV 面向音乐人、内容创作者和品牌团队,帮助用户低成本完成歌曲 MV、歌词视频、AI 分镜、图生视频与最终合成。

    蛙蛙写作 网页版
    蛙蛙写作 网页版

    蛙蛙写作 AI 创作工具,覆盖小说、剧本、文案,一键生成文稿,打通文字转视频全流程,高效解决创作难题。

    讯飞智作 网页版
    讯飞智作 网页版

    讯飞智作是一款基于语音合成技术、虚拟人驱动技术与数字人形象声音构建能力的 AI 数字人音视频创作平台。

    超级简历WonderCV 网页版
    超级简历WonderCV 网页版

    超级简历WonderCV是面向应届生和AI小白的智能求职平台,覆盖简历、面试与职业规划。

    音述AI 网页版
    音述AI 网页版

    音述AI,是一个以“用声音述说故事”为核心的 AI 音乐创作与声音分享社区。

    AionClaw macOS版
    AionClaw macOS版

    AionClaw 是可在桌面端运行的任务型 AI 助手,通过数字专家与技能市场组合办公、创作、数据和开发能力。

    Loomy macOS版
    Loomy macOS版

    Loomy 是科大讯飞推出的桌面 AI 助手,可通过对话、任务与工作目录协助处理办公、内容创作和资料整理。

    AirBuddy 3 macOS版
    AirBuddy 3 macOS版

    AirBuddy 3 是面向 macOS 的蓝牙外设增强工具,可集中查看 AirPods、Beats 与苹果设备电量,提供快速连接、播放控制、电量提醒、桌面小组件和多台 Mac 外设接力等功能。

    AirServer macOS版
    AirServer macOS版

    AirServer macOS版可把 Mac 转换为无线投屏接收端,通过 AirPlay 或 Google Cast 接收手机、平板和电脑画面,并支持多设备同时连接、高清镜像及会话录制,适合家庭娱乐、课堂教学、会议演示和应用展示。

    AnyDesk macOS版
    AnyDesk macOS版

    AnyDesk macOS版是一款适用于远程办公、设备维护和客户支持的远程桌面工具,可连接并操作异地计算机,支持文件传输、无人值守访问、会话权限控制及跨平台协作。

    WINDOWS 更多
    Aperty Windows版
    Aperty Windows版

    Aperty 是 Skylum 推出的 AI 人像修图软件,支持自然肤质修饰、瑕疵处理、面部与身体调整、预设及批量同步。

    火山引擎 网页版
    火山引擎 网页版

    火山引擎是字节跳动旗下企业级云与AI服务平台。聚焦大模型核心能力,依托字节自研豆包多模态大模型,凭借火山方舟一站式平台,提供模型精调、推理部署、智能应用搭建等全链路服务,结合高性能AI算力,助力各行业快速落地大模型数字化与智能化应用。

    立刻MV 网页版
    立刻MV 网页版

    立刻MV 面向音乐人、内容创作者和品牌团队,帮助用户低成本完成歌曲 MV、歌词视频、AI 分镜、图生视频与最终合成。

    蛙蛙写作 网页版
    蛙蛙写作 网页版

    蛙蛙写作 AI 创作工具,覆盖小说、剧本、文案,一键生成文稿,打通文字转视频全流程,高效解决创作难题。

    讯飞智作 网页版
    讯飞智作 网页版

    讯飞智作是一款基于语音合成技术、虚拟人驱动技术与数字人形象声音构建能力的 AI 数字人音视频创作平台。

    超级简历WonderCV 网页版
    超级简历WonderCV 网页版

    超级简历WonderCV是面向应届生和AI小白的智能求职平台,覆盖简历、面试与职业规划。

    音述AI 网页版
    音述AI 网页版

    音述AI,是一个以“用声音述说故事”为核心的 AI 音乐创作与声音分享社区。

    AionClaw Windows版
    AionClaw Windows版

    AionClaw 是可在桌面端运行的任务型 AI 助手,通过数字专家与技能市场组合办公、创作、数据和开发能力。

    Loomy Windows版
    Loomy Windows版

    Loomy 是科大讯飞推出的桌面 AI 助手,可通过对话、任务与工作目录协助处理办公、内容创作和资料整理。

    讯飞绘文 网页版
    讯飞绘文 网页版

    讯飞绘文网页版是科大讯飞推出的AI图文创作与内容运营工具,覆盖热点选题、文章生成、稿件校对、智能配图、排版发布和数据复盘等环节,适合自媒体创作者及内容团队在线使用。

    AirServer Windows版
    AirServer Windows版

    AirServer Windows版可把电脑变成AirPlay、Google Cast和Miracast无线投屏接收端,适合会议演示、课堂教学及家庭大屏分享。发送设备通常无需另装客户端,并可同时接收和智能排列多个镜像会话。

    AlwaysUp Windows版
    AlwaysUp Windows版

    AlwaysUp是一款面向Windows的系统服务注册与程序托管工具,可让普通应用、脚本及批处理在无人登录时随系统启动,并通过状态检测、异常重启、资源监控和邮件通知保障关键任务持续运行。

    即将离开本站
    您即将前往第三方网站,请确认是否继续?