中文语言包更新不受extensions.autoUpdate控制,它由VS Code主程序通过product.json和微软CDN静默同步;真正生效需修改product.json设"enableLanguagePacks": false,但会导致回退英文且升级时被覆盖。

中文语言包更新不受插件自动更新控制
VS Code 的 vscode-language-pack-zh-hans 不是普通插件,它由主程序通过 product.json 和微软 CDN 静默同步,extensions.autoUpdate 对它完全无效。你看到的“重启后语言包版本变了”“手动禁用又被启用”,都是这个机制在运行。
常见误操作包括:在设置里关掉自动更新、设 "update.mode": "none"、甚至卸载重装——全都没用。它不走扩展管理流程,也不响应用户级配置。
- 真正生效的唯一方式是修改安装目录下的
resources/app/product.json,添加"enableLanguagePacks": false - 但这样做会强制回退到英文界面,且 VS Code 升级时该字段大概率被覆盖
- macOS/Linux 的 snap 安装版无法直接写入该文件,等同于不可控
中文功能类插件才受 extensions.autoUpdate 管理
像 chinese-copywriting-helper、vscode-zh-hans-menu 这类第三方中文增强插件,才是标准扩展行为,能被 extensions.autoUpdate 和 extensions.autoCheckUpdates 控制。
但注意:只关 extensions.autoUpdate 不够,右下角仍会弹 “Update available”,因为 extensions.autoCheckUpdates 负责每小时一次后台 HTTP 轮询,和安装动作解耦。
- 必须同时在
settings.json里设两者为false - 检查工作区级配置(
.vscode/settings.json)是否覆盖了用户级设置 - CI 脚本或脚手架(如 create-react-app)常默认开启,别信初始化时的“干净”状态
GitLens、ESLint 等插件的更新提示绕过全局开关
这些插件不依赖 VS Code 的通用更新通道,而是自己调用 vscode.window.showInformationMessage 弹通知,所以关掉 extensions.autoUpdate 后它们照刷“New release available”。
处理方式因插件而异,没有统一开关:
-
GitLens:搜设置项gitlens.advanced.messages,设为空数组[];或关gitlens.telemetry.enabled -
ESLint:设eslint.lintTask.enable为false可减少触发时机,但无官方静音选项 -
Prettier:截至 2026 年 6 月仍无静音开关,临时解法是手动安装旧版后,在扩展页点「禁用自动更新」(若支持)
locale 设置必须严格为 "zh-cn"
语言包只是资源容器,真正决定界面语言的是 locale 配置项。它必须是小写、带连字符、符合 BCP 47 标准——写成 "zh_CN"、"zh-hans"、"Chinese" 或 "zh" 全部无效,会无声 fallback 到英文。
验证是否真生效,不能只看菜单栏:任务管理器里确认所有 Code.exe(Windows)或 Electron(macOS)进程已退出,再全新启动。后台残留进程会让新窗口复用旧环境,看起来像没改成功。


















