怎么在VS2019中自定义一个项目模板?相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。
一、自定义项目模板创建
本次我们来创建一个实现了基础功能的webapi模板
创建自定义的项目模板,有以下几个步骤:
1,创建原始的项目(模板项目)
创建webapi项目:
实现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,导出模板源项目,指定模板项目设置名称,说明,图标等内容
模板基本内容实现完成后,则可以进行模板导出操作,步骤如下:
,进入菜单:项目→导出模板
B,弹出:导出模板向导页面
C,设置模板相关信息,点击完成,则模板创建成功
输出位置为自定义模板导出存储位置;
【自动将模板导入Visual Studio】选项,选中后会将项目模板复制一份,放入到特定的文件夹中,下次建立新项目就可以搜索使用。
4模板项目添加语言,平台和项目类型等标签
前面的步骤已经完成对模板的创建,但是在创建项目时,可以根据项目平台,语言,项目类型标签过滤,那么如何实现项目模板标签呢?
接下来对3步骤中生成的项目模板进行研究:
打开模板文件的压缩文件中发现了模板文件
解压文件后,对该文件进行编辑,添加语言标签(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中自定义一个项目模板