怎么在VS2019中自定义一个项目模板

  介绍

怎么在VS2019中自定义一个项目模板?相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。

一、自定义项目模板创建

本次我们来创建一个实现了基础功能的webapi模板

创建自定义的项目模板,有以下几个步骤:

1,创建原始的项目(模板项目)

创建webapi项目:

怎么在VS2019中自定义一个项目模板

实现webapi相关基础功能:SwaggerUI,认证、性能监控(MiniProfiler)等基础功能,可以在之前博客内容中查看实现具体方式

2,替换模板项目的参数

此时模板的基础功能已经实现,但是在创建项目时,会根据输入的项目名称,来设置代码中的命名空间,输出程序名称等信息。

那么是如何实现的呢?——模板参数

当前支持的内置项目参数如下表:(模板参数区分大小写。)

,前缀添加到任何参数,以引用父模板的变量只)。,相同,但所有不安全字符和空格替换为了下划线。,相同。,具有解决方案名称只> 如:设置代码文件中命名空间定义:

namespace  $ safeprojectname $   {   ,,,,///,& lt; summary>   ,,,///,作者:用户名美元   ,,,///,时间:时间美元   ,,,///,机器名:machinename美元   ,,,///,项目名:projectname美元   ,,,///,& lt;/summary>   ,,,public  class 程序   ,,,{   ,,,,,,,public  static  void  Main (string [], args)   ,,,,,,,{   ,,,,,,,,,,,CreateHostBuilder (args) .Build () .Run ();   ,,,,,,,}   ,,,,,,,public  static  IHostBuilder  CreateHostBuilder (string [], args),=比;   ,,,,,,,,,,,Host.CreateDefaultBuilder (args)   ,,,,,,,,,,,,,,,.ConfigureWebHostDefaults (webBuilder =比;   ,,,,,,,,,,,,,,,{   ,,,,,,,,,,,,,,,,,,,webBuilder.UseStartup ();   ,,,,,,,,,,,,,,,});   ,,,}   }

如代码中需要使用项目名称依旧采用$ safeprojectname $;如:

public  void  ConfigureServices (IServiceCollection 服务)   {   ,,,//注册大摇大摆生成器,定义一个和多个Swagger 文档   ,,,services.AddSwaggerGen (c =比;   ,,,{   ,,,,,,,c.SwaggerDoc (“v1",, new  OpenApiInfo  {, Title =,“$ safeprojectname $, API",, Version =,“v1",});   ,,,,,,,//其他   ,,,});   }

除了VS自带的模板参数外,用户还可以自定义模板参数,但现实用到的不多

3,导出模板源项目,指定模板项目设置名称,说明,图标等内容

模板基本内容实现完成后,则可以进行模板导出操作,步骤如下:

,进入菜单:项目→导出模板

怎么在VS2019中自定义一个项目模板

B,弹出:导出模板向导页面

怎么在VS2019中自定义一个项目模板

C,设置模板相关信息,点击完成,则模板创建成功

怎么在VS2019中自定义一个项目模板

输出位置为自定义模板导出存储位置;

【自动将模板导入Visual Studio】选项,选中后会将项目模板复制一份,放入到特定的文件夹中,下次建立新项目就可以搜索使用。

4模板项目添加语言,平台和项目类型等标签

前面的步骤已经完成对模板的创建,但是在创建项目时,可以根据项目平台,语言,项目类型标签过滤,那么如何实现项目模板标签呢?

接下来对3步骤中生成的项目模板进行研究:

打开模板文件的压缩文件中发现了模板文件

怎么在VS2019中自定义一个项目模板

解压文件后,对该文件进行编辑,添加语言标签(LanguageTag),平台标签(PlatformTag)项目类型标签(ProjectTypeTag):

& lt; VSTemplate  Version=?.0.0", xmlns=癶ttp://schemas.microsoft.com/developer/vstemplate/2005",类型=癙roject"比;   & lt;才能TemplateData>   ,,,& lt; !——项目名称——比;   ,,,& lt; Name> ApiTemplate   ,,,& lt; !——项目描述——比;   ,,,& lt; Description>基础API模板:支持SwaggerUI,认证、性能监控等基础功能& lt;/Description>   ,,,& lt; !——项目类型——比;   ,,,& lt; ProjectType> CSharp

怎么在VS2019中自定义一个项目模板