必须用 --extensions-dir 启动参数强制指定插件路径,这是官方唯一明确支持的方式;需彻底关闭 vs code 进程、复制旧插件、在快捷方式目标栏末尾添加该参数并加双引号,环境变量和软链接均存在兼容性或稳定性风险。

不能靠改配置文件来迁移插件路径,必须让 VS Code 每次启动时“知道去哪找插件”——否则旧插件不加载、新插件仍装进 C 盘。
用 --extensions-dir 启动参数强制指定路径(最稳)
这是唯一被官方明确支持、兼容性最好、且能立即验证的方式。关键不是改某个开关,而是确保每次启动都带这个参数,且它必须紧贴 code 命令执行。
- 先彻底关闭所有 VS Code 进程(任务管理器里确认没有
Code.exe和Code Helper.exe) - 创建目标目录,例如
D:\VSCodeExtensions;把原%USERPROFILE%\.vscode\extensions下全部内容复制进去(不是剪切,留一份备用) - 命令行运行:
code --extensions-dir "D:\VSCodeExtensions",观察左侧「扩展」面板是否完整列出已装插件 - 右键桌面快捷方式 → 属性 → 「目标」栏末尾加一个空格,再粘贴
--extensions-dir "D:\VSCodeExtensions",保存后双击启动 - 验证:安装一个新插件(如
ms-python.python),进D:\VSCodeExtensions看文件时间戳是否更新
VSCODE_EXTENSIONS 环境变量只影响新插件安装
它确实被官方文档收录,但行为有歧义:设置后,新装插件会写入该路径,但旧插件仍从原 %USERPROFILE%\.vscode\extensions 加载——两套路径共存,可能引发冲突或界面显示异常。
- Windows:新建系统环境变量,变量名
VSCODE_EXTENSIONS,变量值为你的目标路径(如D:\VSCodeExtensions) - macOS/Linux:在
~/.zshrc或~/.bashrc中添加export VSCODE_EXTENSIONS="$HOME/vscode-ext",然后运行source ~/.zshrc - 必须手动把旧插件复制过去,否则它们不会自动迁移,也不会被识别
- 重启 VS Code 后,
Help → Toggle Developer Tools → Console输入process.env.VSCODE_EXTENSIONS可确认是否生效
软链接(mklink /D)风险高,慎用
看似省事,但在 Windows 上对 VS Code 不稳定,尤其含本地二进制模块的插件(如 ms-vscode.cpptools)容易静默失败或重装。
-
mklink /J(目录联接)可能被识别为“非原始位置”,触发校验失败 -
mklink /D(符号链接)需管理员权限,且部分杀毒软件会拦截 - 一旦源目录被误删或移动,软链接失效,VS Code 会新建空
extensions文件夹,已装插件全“丢失” - 多用户共用一台机器时,软链接指向固定路径,无法按用户隔离
最容易被忽略的是:快捷方式目标栏没加空格、路径含中文或空格没用双引号包住、或者后台进程没关干净——这些都会导致参数不生效,插件依然装在 C 盘。真正要改的是“每次启动怎么找插件”,而不是“去哪改一个开关”。











