VSCode安装过程本身不提供修改临时缓存文件夹位置的选项,其安装器(Windows Installer/macOS pkg/Linux deb/rpm)强制使用系统默认临时目录(如%TEMP%或/tmp),且无界面或参数可供干预;--cache-dir等参数仅对已安装的VSCode运行时生效,用于控制工作区索引、语言服务器日志等,与安装过程无关。

VSCode 安装过程本身不提供修改临时缓存文件夹位置的选项 —— 安装器(无论是 Windows Installer、macOS pkg 还是 Linux deb/rpm)会把自身解压/运行所需的临时文件写入系统默认临时目录(如 %TEMP% 或 /tmp),你无法在安装界面上干预它。
安装时的“临时缓存”不是你能改的
所谓“安装过程中的临时缓存”,指的是安装程序(比如 vscode-win32-x64-user-installers-*.exe)运行时解包、校验、写入注册表或启动服务所用的瞬时文件。这些路径由操作系统决定,且安装器不暴露配置入口:
- Windows 下走的是
%TEMP%,哪怕你提前设了VSCODE_CACHE也完全不影响安装器行为; - macOS pkg 安装器强制使用
/private/tmp,无参数可绕过; - Linux 包管理器(apt/dnf)更不会让你指定安装时的临时工作区,它直接操作
/var/tmp或内存 tmpfs。
强行在安装中途改 %TEMP% 环境变量,反而可能导致安装失败或权限异常 —— 不值得冒这个风险。
--cache-dir 是启动后才生效的,和安装无关
很多人混淆了“安装时缓存”和“运行时缓存”。--cache-dir 参数只对已安装的 VSCode 可执行文件有效,它控制的是:
- 工作区索引(
workspaceStorage) - 语言服务器日志(如
ms-python.python的输出) - 某些扩展的临时下载(如主题预览图)
但它不控制安装器自己的临时解压目录,也不影响 vscode-cpptools 的 ipch 缓存(那得靠 C_Cpp: Intelli Sense Cache Path 单独配)。示例命令:
code --cache-dir "D:\VSCode\Cache"
这条命令必须在 VSCode 已安装完成后执行,否则 code 命令根本不存在。
真正能动的只有运行时路径:user-data-dir + extensions-dir
如果你的目标是避免 C 盘被占满,重点不该放在“安装时”,而应立刻处理运行时数据落点。最可靠组合是:
-
--user-data-dir:接管全部用户配置、历史、扩展安装记录、调试断点等(默认在%APPDATA%\Code) -
--extensions-dir:单独剥离插件二进制文件(默认在%USERPROFILE%\.vscode\extensions) - 两者必须同时指定,否则扩展可能找不到对应 user-data,出现重复安装或禁用状态
验证是否生效:启动后右下角显示 Portable Mode,且 %APPDATA%\Code 和 %USERPROFILE%\.vscode\extensions 下不再生成新文件。
符号链接是兜底方案,但仅限 Windows
如果快捷方式参数被绕过(比如双击文件触发右键菜单打开),又不想改注册表,唯一兼容性高的补救是用符号链接重定向原始路径:
- 先停掉所有
Code.exe进程 - 把
%USERPROFILE%\.vscode\extensions整个移走 - 以管理员身份运行 cmd,执行:
mklink /D "%USERPROFILE%\.vscode\extensions" "D:\VSCode\extensions" - 注意:
/D表示目录链接,路径中不能有空格或引号,否则命令失败
Linux/macOS 用 ln -s,但 macOS 对符号链接权限更敏感,部分扩展(如 Rust 的 rust-analyzer)可能拒绝加载 —— 这点常被忽略。


















