如何使用dotnet自定义模板实现指定文件夹自动重命名?
方案1:修改现有parameter配置为隐藏参数
在你已经验证可生效的folderRename配置中新增"isHidden": true字段,即可隐藏该参数,不允许用户修改:
"folderRename": { "type": "parameter", "fileRename": "MyTemplate", "defaultValue": ".template.config", "isHidden": true }
该方案改动最小,isHidden属性会让该参数不会出现在模板的帮助信息中,也不支持用户通过命令行传参修改。
方案2:使用derived类型符号(更推荐)
你的重命名规则是固定的,不需要绑定用户输入的参数,直接用derived类型的符号更合理,天然不会暴露为可修改参数:
可先删掉原来forms节点下的folderName配置,再修改symbols中的folderRename配置如下:
"folderRename": { "type": "derived", "value": ".template.config", "fileRename": "MyTemplate" }
该方案不需要依赖其他参数或者值转换规则,配置更简洁,且derived类型的符号本身就属于模板内部计算的属性,完全不会对外暴露。
验证步骤
修改配置后可按以下步骤本地测试效果:
- 执行
dotnet new uninstall .(如果之前安装过测试模板先卸载) - 执行
dotnet new install .安装当前修改后的模板 - 执行
dotnet new dotnet-template --help,确认输出的参数列表中没有folderRename相关选项 - 执行
dotnet new dotnet-template -n Test --author "自定义作者名"生成项目,检查生成的目录中MyTemplate已被重命名为.template.config,且内部template.json的author字段已被正确替换。
内容的提问来源于stack exchange,提问作者Dbl
相关产品推荐
相关产品推荐

