You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何通过命令行基于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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.29 16:57:03