如何禁用Visual Studio Code中预定义的project.json与.NET Core JSON Schema关联,仅保留自定义Schema
解决VS Code中project.json默认.NET Core Schema与自定义Schema冲突的问题
我完全理解你遇到的困扰——明明配置了自定义Schema,VS Code却还是把默认的.NET Core project.json Schema和你的自定义规则混在一起,导致提示和自动补全乱成一团。下面是直接有效的解决方法:
核心修复:禁用默认Schema关联
在你的自定义Schema配置里添加"disableDefaultSchemas": true属性,这个设置会告诉VS Code:对于匹配fileMatch规则的文件,只加载你指定的自定义Schema,彻底忽略所有默认关联的Schema。
修改后的.vscode/settings.json完整配置如下:
{ "json.schemas": [ { "fileMatch": [ "data/projects/list/*/project.json" ], "url": "./.vscode/schemas/project.json", "disableDefaultSchemas": true } ] }
验证步骤
- 保存修改后的
settings.json文件 - 打开命令面板(快捷键
Ctrl+Shift+P或Cmd+Shift+P),执行Reload Window命令重启VS Code窗口 - 打开目标
project.json文件,悬停在开头的{符号上,此时应该只会显示你的自定义Schema提示,不再出现.NET Core相关的内容
为什么会出现混合提示?
VS Code的JSON Schema匹配逻辑是:如果多个Schema的fileMatch规则都命中当前文件,就会合并所有Schema的属性提示。默认的.NET Core project.json Schema通常匹配所有名为project.json的文件,而你的自定义Schema虽然路径匹配更精准,但VS Code依然会同时加载两者,导致属性混合。添加disableDefaultSchemas后,就会覆盖这个默认行为,只保留你的自定义规则。
内容的提问来源于stack exchange,提问作者CMTV




