用Visual Studio2019自定义项目模板

众所周知,在我们使用VS新建项目时,都需要选择一个项目模板,如下图:

创建新项目

我们选择完项目模板进行创建,创建完成之后,可以发现项目中已经包含了一些基础的文件。例如MVC:

MVC默认的文件架构

可以看到,MVC项目下,这么多的文件、类都给我们自动生成了,我们并不需要敲任何代码。

所以,项目模板,就是在我们创建新项目界面中,给我们列出来的模板文件。

这些文件都是VS自带的,但在实际工作中,很多时候我们需要的是一个跟我们项目的业务更加契合的、可复用的项目模板,这时候就需要我们自己去创建一个自定义的项目模板了。

项目模板创建步骤

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

创建一个原始的项目,我们称之为模板源;

替换模板参数

导出模板源项目, 给模板项目设置名称、说明、图标等内容

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

使用自定义的项目模板

创建模板源项目

首先我们创建一个原始的项目。
以下是我创建的Demo,添加了几个文件,只是用来做一个简单的例子,实际开发中可能比这复杂的多。

模板源Demo

模板中的参数

我们创建出来的模板源项目,有很多内容在创建项目之前是不确定的,比如命名空间、类名称等,这怎么办呢?
VS也给了我们解决办法,我们可以在源项目中,使用模板参数来代替这些不确定的信息,在实际创建项目时,VS会将这些模板参数替换为实际的内容。
以HomeController.cs文件为例,使用模板参数代替命名空间名称:

添加模板参数


模板参数以 $参数$ 的格式进行声明 。$safeprojectname$表示的
就是命名空间的模板参数。
VS完整的模板参数如下:

参数 描述
clrversion   公共语言运行时 (CLR) 的当前版本。  
ext_*   将 ext_ 前缀添加到任何参数,以引用父模板的变量。 例如 ext_safeprojectname。  
guid[1-10]   一个用于替换项目文件中的项目 GUID 的 GUID。 可指定最多 10 个唯一的 GUID(例如,guid1)。  
itemname   在其中使用参数的文件的名称。  
machinename   当前的计算机名称(例如,Computer01)。  
projectname   创建项目时由用户提供的名称。  
registeredorganization   来自 HKLM\Software\Microsoft\Windows NT\CurrentVersion\RegisteredOrganization 的注册表项值。  
rootnamespace   当前项目的根命名空间。 此参数仅适用于项模板。  
safeitemname   与 itemname 相同,但所有不安全字符和空格替换为了下划线。  
safeitemrootname   与 safeitemname 相同。  
safeprojectname   用户在创建项目时提供的名称,但名称中删除了所有不安全字符和空格。  
time   以 DD/MM/YYYY 00:00:00 格式表示的当前时间。  
specifiedsolutionname   解决方案的名称。 在选中“创建解决方案目录”时,specifiedsolutionname 具有解决方案名称。 在未选中“创建解决方案目录”时,specifiedsolutionname 为空。  
userdomain   当前的用户域。  
username   当前的用户名称。  
webnamespace   当前网站的名称。 此参数在 Web 窗体模板中用于保证类名是唯一的。 如果网站在 Web 服务器的根目录下,则此模板参数解析为 Web 服务器的根目录。  
year   以 YYYY 格式表示的当前年份。  

除了VS自带的模板参数外,用户还可以自定义模板参数,但实际用到的不多,在此就不扩展赘述了。

导出模板

源文件中的模板参数替换好之后,我们就可以导出模板了,操作步骤如下:
打开工具栏中的项目->选择导出模板

导出模板


弹出【导出模板向导】界面,选择项目模板即可,下方选择的是要导出的项目。

导出模板

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/zywwdf.html