必须同时禁用extensions.autoUpdate、extensions.autoCheckUpdates和workbench.enableExperiments三项配置,并单独配置GitLens(gitlens.advanced.messages: [])、ESLint(eslint.packageManager: null)和Prettier(prettier.enableUpdateCheck: false),再通过手动下载.vsix文件本地安装实现版本冻结。

VSCode 本身不支持语义化版本锁定,所谓“锁定插件版本”本质是一套组合策略:关掉三层自动检查 + 压制插件自身通知逻辑 + 改用本地安装绕过 Marketplace 校验。
必须同时禁用的三个全局配置项
只关 extensions.autoUpdate 没用——GitLens、ESLint、Prettier 这些插件仍会弹「New release available」。它们各自走独立通道:
-
extensions.autoUpdate: 设为false才真正阻止下载和安装;设成manual仍会静默拉包并弹窗 -
extensions.autoCheckUpdates: 设为false才停掉每小时一次的后台 HTTP 轮询(日志里能看到Checking for extension updates) -
workbench.enableExperiments: 设为false才禁用新版通知框架,否则 GitLens 等插件仍走vscode.window.showInformationMessage弹右下角气泡
这三项必须全部写进用户级 settings.json(路径:Ctrl+Shift+P → Preferences: Open User Settings (JSON)),别依赖 GUI 设置——它常不同步,尤其用了 Settings Sync 或团队模板时。
关键插件要单独关掉自己的更新检查
它们不读 VSCode 的全局开关,只认自己家的字段。搜不到对应设置?直接打开 settings.json 手动加一行,保存后重启生效:
- GitLens:
gitlens.advanced.messages设为[];顺手关掉gitlens.telemetry.enabled(部分版本借遥测反向触发提示) - ESLint:
eslint.packageManager设为null(某些版本靠它触发升级检查);确认没误配eslint.options导致插件反复崩溃重载 - Prettier:
prettier.enableUpdateCheck设为false(v9.13.0+ 支持);若无效,直接走本地安装路线
真正冻结某个插件版本(如 Prettier v3.4.1)
VSCode 原生不支持 prettier@3.4.1 这种写法,但能通过“本地安装 + 文件权限”实现事实冻结:
- 先卸载当前版本(Extensions 视图右键 →
Uninstall) - 去 Marketplace 页面点「Download Extension」,手动下载对应
.vsix文件(注意核对发布时间和版本号) - 运行命令
Extensions: Install from VSIX安装该文件 - 安装完成后,VSCode 不会对本地安装的插件发起版本检查(截至2026年4月13日)
如果 Marketplace 不显示旧版,可在 URL 末尾加 ?vscodeVersion=1.79.2(换成你本地 code --version 输出的精确版本)强制加载历史版本下拉菜单;若整个菜单灰显,说明作者已撤下所有兼容版本,必须走离线路径。
容易被忽略的 Remote-SSH 和本地插件目录残留
降级 VSCode 或换插件版本后,最常踩的坑不是配置没写对,而是环境残留:
- Remote-SSH 插件不仅有前端部分,还会在远端部署
vscode-server,这个二进制版本必须和本地 VSCode 主版本严格一致。降级后务必先删掉远端的~/.vscode-server目录再重连 - 本地插件目录(
~/.vscode/extensions/或%USERPROFILE%\.vscode\extensions\)里若混着为新版编译的插件(比如调用了 Webview API),会导致静默加载失败——建议先重命名该目录为extensions-backup,让新版首次启动时重建干净目录 - 某些插件即使被“禁用”,也会在启动时尝试初始化,残留逻辑照样触发崩溃。这时候禁用只是假象,得直接删掉对应扩展文件夹
改完 engines.vscode 字段后不要只点「启用」,必须执行命令面板中的 Developer: Reload Window;VSCode 更新后该插件会被自动重置为原始值,需重复修改。











