【转】vs如何创建模板

2023-08-04 157 0

项目模板简介

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

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

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

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

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

项目模板创建步骤

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

  1. 创建一个原始的项目,我们称之为模板源;
  2. 替换模板参数
  3. 导出模板源项目, 给模板项目设置名称、说明、图标等内容
  4. 给项目模板添加语言、平台和项目类型等标签
  5. 使用自定义的项目模板
创建模板源项目

首先我们创建一个原始的项目。
以下是我创建的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自带的模板参数外,用户还可以自定义模板参数,但实际用到的不多,在此就不扩展赘述了。

导出模板

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

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

接下来,在模板选项中,填入模板的名称,说明,图标等信息:

注意这个输出位置,这是自定义项目模板存放的路径。

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

点击完成,VS会把项目模板压缩为.zip文件,分别导入到以下两个文件夹中:
C:\Users\Lenovo\Documents\Visual Studio 2019\My Exported Templates

C:\Users\Lenovo\Documents\Visual Studio 2019\Templates\ProjectTemplates

这时候不需要任何其他的操作,打开VS的启动窗口,点开创建新项目,就可以找到ProjectTemplateDemo这个项目模板了。

下面使用这个模板创建一个项目

可以看到,项目的结构与我们项目模板一模一样,命名空间名称也被替换为Demo1了。

给项目模板添加标签

其实到这一步,我们的项目模板就可以正常使用了,但我们会发现一个问题,我们的项目模板没有这样的标签:


虽然不影响使用,但当查找项目模板时,也不是很方便,所以我们需要给创建的项目模板添加几个对应的标签。方法如下:

首先打开这个模板导入到的文件夹,路径:C:\Users\Lenovo\Documents\Visual Studio 2019\Templates\ProjectTemplates

解压ProjectTemplateDemo这个压缩包。
在解压好的ProjectTemplateDemo文件夹里,用VS打开MyTemplate.vstemplate这个文件。

这是一个XML文件,我们需要在TemplateData标签里添加上项目使用语言、平台、项目类型的信息。
语言、平台、项目类型的标签分别为LanguageTagPlatformTagProjectTypeTag
同时,Visual Studio 提供了一系列内置标签。以下列表是 Visual Studio 中可用的内置标签,对应的值显示在括号中。

语言标签平台标签项目类型标签
C (cpp)Android (android)云 (cloud)
单元格单元格单元格
C# (csharp)Azure (azure)控制台 (console)
F# (fsharp)iOS (ios)桌面 (desktop)
Java (java)Linux (linux)扩展 (extension)
JavaScript (javascript)macOS (macos)游戏 (games)
Python (python)tvOS (tvos)IoT (iot)
查询语言 (querylanguage)Windows (windows)库 (library)
TypeScript (typescript)Xbox (xbox)机器学习 (machinelearning)
Visual Basic (visualbasic) 移动 (mobile)
  Office (office)
  其他 (other)
  服务 (service)
  测试 (test)
  UWP (uwp)
  Web (web)

我们修改这个文件,添加几个对应的标签:

我们把这个文件保存一下,保存之后,跳到文件夹下,全选文件,重新压缩一遍修改好的ProjectTemplateDemo文件:

注意,压缩包必须是.zip文件。

压缩完成后,把这个压缩包拷贝到C:\Users\Lenovo\Documents\Visual Studio 2019\Templates\ProjectTemplates目录下,并覆盖掉旧的压缩包。
然后删除解压后的文件。
这时候重新创建新项目,选择ProjectTemplateDemo项目模板,可以看到我们的标签已经加上去了。

至此,就是自定义项目模板的全部步骤。

总结

自定义的项目模板作用非常大,在大型的项目中,如果使用好的话会大大提升我们的开发效率。

以上就是本文章的全部内容。

原文地址:用Visual Studio2019自定义项目模板 - metahuber - 博客园 (cnblogs.com)

相关文章

发布评论