VSCode launch.json报错‘Inputs Property Not Allowed’的解决求助
VSCode 1.84.2中launch.json配置inputs报错“Inputs Property Not Allowed”的解决方法
问题背景
用C++开发ROS2节点时,试图在VSCode的launch.json中配置inputs属性,实现调试会话启动时通过下拉菜单选择不同节点的动态调试设置,但VSCode 1.84.2版本提示报错“Inputs Property Not Allowed”,确认JSON格式无误且官方文档标注inputs为合法属性,仍无法解决。
报错信息
[{ "resource": "/home/robot/vision_servo/.vscode/launch.json", "owner": "_generated_diagnostic_collection_name_#1", "severity": 4, "message": "Inputs Property Not Allowed", "startLineNumber": 23, "startColumn": 7, "endLineNumber": 23, "endColumn": 15 }]
相关配置片段
{ // ... 其他配置项 ... "inputs": [ { "id": "package", "type": "pickString", "description": "Package name", "options": ["camera_deal", "vision_control", "egm_control"], "default": "camera_deal" }, { "id": "program", "type": "pickString", "options": ["camera_deal", "vision_control", "egm_control"], "default": "camera_deal" } ] // ... 其他配置项 ... }
原因分析
inputs属性位置错误:这是最常见的原因,inputs必须和configurations数组处于同一层级(即作为launch.json根对象的直接属性),不能嵌套在单个调试配置项内部。- C/C++扩展版本兼容问题:旧版本的C/C++扩展可能未正确支持
inputs属性的JSON Schema校验,导致误报。 - VSCode缓存或Schema加载问题:VSCode可能未正确加载最新的
launch.jsonSchema,引发错误提示。
解决方案
1. 修正inputs的位置
确保inputs与configurations平级,正确的launch.json结构示例:
{ "version": "0.2.0", "configurations": [ { "name": "ROS2 节点调试", "type": "cppdbg", "request": "launch", // 使用input变量动态填充路径 "program": "${workspaceFolder}/install/${input:package}/lib/${input:package}/${input:program}", "args": [], "stopAtEntry": false, "cwd": "${workspaceFolder}", "environment": [], "externalConsole": false, "MIMode": "gdb", "setupCommands": [ { "description": "为gdb启用格式化输出", "text": "-enable-pretty-printing", "ignoreFailures": true } ] } ], // inputs与configurations同级 "inputs": [ { "id": "package", "type": "pickString", "description": "Package name", "options": ["camera_deal", "vision_control", "egm_control"], "default": "camera_deal" }, { "id": "program", "type": "pickString", "options": ["camera_deal", "vision_control", "egm_control"], "default": "camera_deal" } ] }
2. 更新C/C++扩展
打开VSCode扩展面板,找到**C/C++**扩展(由Microsoft提供),检查并更新到最新版本,旧版本可能存在Schema校验漏洞。
3. 指定launch.json的Schema
在launch.json的根对象中添加Schema指定,强制加载标准的调试配置Schema:
{ "$schema": "https://json.schemastore.org/launch.json", "version": "0.2.0", "configurations": [/* ... */], "inputs": [/* ... */] }
4. 重启VSCode
修改配置后重启VSCode,清除编辑器缓存,确保新的配置被正确加载。
内容的提问来源于stack exchange,提问作者explorer
相关产品推荐
相关产品推荐

