如何通过命令行基于Visual Studio自定义.vstemplate多项目模板创建解决方案
解决方案适配说明
你现有的基于.vstemplate的Visual Studio多项目模板可以直接适配为dotnet new支持的模板格式,无需修改原有模板逻辑,就能实现命令行传参创建项目、批量更新模板的需求,具体操作步骤如下:
1. 补充dotnet new模板配置
在你现有模板的根目录(与.vstemplate文件同级目录)新建.template.config文件夹,在文件夹内创建template.json配置文件,核心配置参考如下:
{ "$schema": "http://json.schemastore.org/template", "author": "公司研发组", "classifications": [ "Web", "C#", "Windows" ], "identity": "Company.Integration.StartupTemplate", "name": "Integration Startup Template", // 此处配置模板短名称,dotnet new 命令后跟的标识就是这个值 "shortName": "integration-startup", "tags": { "language": "C#", // 标记为解决方案级模板,对应你现有的多项目模板类型 "type": "solution" }, // 此处填写你模板内默认的项目占位名称,创建时会自动替换为用户传入的项目名 "sourceName": "TemplateDefaultProject", "preferNameDirectory": true, // 自定义参数配置,可根据需求扩展 "symbols": { "SolutionName": { "type": "parameter", "defaultValue": "MyIntegrationSolution", // 模板内占位的解决方案名称,创建时会替换为用户传入值 "replaces": "TemplateDefaultSolution", "description": "生成的解决方案名称" } } }
2. 模板安装与更新
你可以把整个模板文件夹存放在公司内部共享路径,开发人员仅需执行一次安装命令,模板更新后重新执行该命令即可拉取最新版本:
:: 安装模板 dotnet new install \\公司共享路径\IntegrationStartupTemplateFolder :: 如需卸载旧版本执行 dotnet new uninstall \\公司共享路径\IntegrationStartupTemplateFolder
3. 命令行创建项目,支持传入所需参数
模板安装完成后,执行以下命令即可完成项目创建,所有常规参数都支持自定义传入:
dotnet new integration-startup -n "你的业务项目名" -o "C:\本地存储路径" -p SolutionName="你的解决方案名"
参数说明:
-n/--name:指定项目根名称,会自动替换模板内所有与sourceName匹配的内容-o/--output:指定项目存储的本地目录,目录不存在时会自动创建-p/--parameter:传入自定义参数,可对接你在template.json中定义的所有扩展字段,比如上面示例的解决方案名称
可选方案:C# WinForm工具封装
如果你需要做可视化交互工具,不需要自行解析模板逻辑,只需要在WinForm中提供输入框让用户填写项目名、存储路径、解决方案名等参数,后台直接调用上述dotnet new命令执行即可,通过命令返回值即可判断创建是否成功。
如果你不想适配
dotnet new格式,也可以使用Visual Studio自带的devenv.exe命令行工具实现创建,但要求开发人员本地必须安装Visual Studio,灵活性更低,仅作为备选::: 安装最新模板 devenv /installvstemplates \\共享路径\TemplatePackage.zip :: 创建项目 devenv /command "File.NewProject Integration Startup Template" /projectname "项目名" /solutionname "解决方案名" /outputdir "存储路径"
内容的提问来源于stack exchange,提问作者David
相关产品推荐
相关产品推荐

