Visual Studio模板:根据ProjectType条件隐藏DoStuff参数
Visual Studio项目模板:根据参数值动态隐藏向导参数
需求说明
创建自定义Visual Studio项目模板时,需实现:当ProjectType参数选择API时,在项目创建向导中隐藏DoStuff布尔参数,效果对标Visual Studio默认API模板中Docker OS参数的动态隐藏逻辑。
现有配置问题
之前的template.json未添加可见性控制逻辑,而ide.host.json中isVisible的表达式写反,导致功能失效。
正确实现方案
方案1:直接在template.json中配置(推荐)
在DoStuff参数的配置里添加visibleIf字段,通过表达式控制可见性:
{ "$schema": "http://json.schemastore.org/template", "symbols": { "ProjectType": { "type": "parameter", "datatype": "choice", "choices": [ { "choice": "Console" }, { "choice": "API" } ], "defaultValue": "API", "description": "The type of the project you are building." }, "DoStuff": { "type": "parameter", "datatype": "bool", "defaultValue": "false", "visibleIf": "ProjectType != 'API'" } } }
- 逻辑说明:
visibleIf指定参数可见的条件,当ProjectType不等于API时,DoStuff才会在向导中显示;选择API时自动隐藏。
方案2:修正ide.host.json配置
若需通过IDE宿主配置实现,需修正isVisible的表达式,并确保文件放置在模板根目录(与template.json同级):
{ "$schema": "https://json.schemastore.org/ide.host.json", "defaultSymbolVisibility": true, "order": 2, "icon": "icon.png", "symbolInfo": [ { "id": "DoStuff", "isVisible": "(ProjectType != \"API\")" } ] }
- 注意点:之前的表达式写为
ProjectType == "API",导致选择API时反而显示参数,改为反向条件即可实现需求。
内容的提问来源于stack exchange,提问作者TheDoomDestroyer
相关产品推荐
相关产品推荐

