VSCode无法读取defaultSettings.json,扩展设置重启后变为undefined
问题概述
- 通过winget全新安装VSCode 1.85.0(用户版),安装路径位于appdata目录,已确认用户拥有文件夹权限
- VSCode仅读取空的
settings.json,无法加载defaultSettings.json,多数内置设置及所有扩展设置显示为undefined - 安装扩展后初始默认设置可生效,但VSCode重启/重载后,除部分复选框设置外,其余扩展默认设置全部消失,对应路径与值变为
undefined,但defaultSettings.json内的默认配置仍存在 - 点击「重置设置」仅能短暂切换部分复选框值,无法修复路径和值的
undefined问题 - 临时解决方案为将
defaultSettings.json内容复制到settings.json,但灵活性差,新增扩展时需重复操作 - 问题在Windows 10和Windows 11系统均复现
版本信息:
Version: 1.85.0 (user setup)
Commit: af28b32d7e553898b2a91af498b1fb666fdebe0c
Date: 2023-12-06T20:48:09.019Z
Electron: 25.9.7
ElectronBuildId: 25551756
Chromium: 114.0.5735.289
Node.js: 18.15.0
V8: 11.4.183.29-electron.0
OS: Windows_NT x64 10.0.22621
解决步骤
1. 重置用户数据目录测试
关闭VSCode,打开命令提示符执行:
code --user-data-dir "C:\Temp\vscode-temp"
此命令会让VSCode使用临时用户数据目录启动,若此时能正常读取defaultSettings.json,说明原用户数据目录已损坏。可备份原目录%APPDATA%\Code后删除,再重启VSCode自动生成新目录。
2. 更换安装方式重新安装
卸载当前VSCode,删除以下残留目录:
%APPDATA%\Code%LOCALAPPDATA%\Programs\Microsoft VS Code
从VSCode官方渠道下载安装包,选择「系统安装」而非用户安装,完成后测试问题是否解决。
3. 检查启动参数
右键VSCode快捷方式,查看「目标」字段是否包含--disable-default-settings等禁用默认设置的异常参数,如有则删除后重启VSCode。
4. 排查扩展冲突
按Ctrl+Shift+X打开扩展面板,点击「更多操作」→「禁用所有已安装扩展」,重启VSCode。若默认设置恢复正常,再逐个启用扩展,定位导致冲突的扩展并卸载或更新。
5. 调整程序权限
右键VSCode安装目录下的Code.exe,选择「属性」→「安全」→「编辑」,添加当前用户并勾选「完全控制」权限。也可先尝试「以管理员身份运行」VSCode,验证是否因权限不足导致无法读取默认配置。
内容的提问来源于stack exchange,提问作者Sudoken

