项目模板简介

众所周知,在我们使用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标签里添加上项目使用语言、平台、项目类型的信息。
语言、平台、项目类型的标签分别为LanguageTag、PlatformTag、ProjectTypeTag。
同时,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项目模板,可以看到我们的标签已经加上去了。

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

总结

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

以上就是本文章的全部内容。更多内容可访问我的博客:http://www.yunc.top/

用Visual Studio2019自定义项目模板相关推荐

  1. Visual Studio2019自定义项目模板

    cnblogs.com/aoede-jacqueline 项目模板简介 众所周知,在我们使用VS新建项目时,都需要选择一个项目模板,如下图: 我们选择完项目模板进行创建,创建完成之后,可以发现项目中已 ...

  2. visual 2019怎么写java_用Visual Studio2019自定义项目模板

    项目模板简介 众所周知,在我们使用VS新建项目时,都需要选择一个项目模板,如下图: 我们选择完项目模板进行创建,创建完成之后,可以发现项目中已经包含了一些基础的文件.例如MVC: 可以看到,MVC项目 ...

  3. vs studio2015导入本地项目_Visual Studio2019自定义项目模板

    (给DotNet加星标,提升.Net技能) 转自:梦中的Aoedecnblogs.com/aoede-jacqueline 项目模板简介 众所周知,在我们使用VS新建项目时,都需要选择一个项目模板,如 ...

  4. vs2019新建一个html项目,VS2019 自定义项目模板的实现方法

    前言: 使用"宇宙最强IDE"开发项目时,都需要根据不同情况选择一个项目模板,来满足开发需求:如下 VS为我们提供了基础的项目模板,但现有项目模板未包含基础功能如:日志输出.审计日 ...

  5. DotNetBar for Windows Forms 12.9.0.0_冰河之刃重打包版及制作Visual Studio C#项目模板文件详解...

    关于 DotNetBar for Windows Forms 12.9.0.0_冰河之刃重打包版 --------------------11.8.0.8_冰河之刃重打包版-------------- ...

  6. ASP.NET 自定义项目模板

    前言 在微服务架构盛行的时代,一言不合就新建一个服务,虽然搭建服务并没什么难度,但不可避免的是每个人搭建出来的架子会存在差异,这很合理,因为每个开发者的个人风格.工作经验都不一样,难免认为自己喜欢的才 ...

  7. grunt从入门到自定义项目模板

    文章还可在我的github上找到,排版更友好一点:grunt从入门到自定义项目模板 一.Grunt入门介绍 1. Grunt是神马 基于任务的命令行构建工具(针对JavaScript项目) 链接:ht ...

  8. 为Visual Studio添加项目模板及项模板

    1 问题的引入 在做项目的时候,需要代码规范,版本信息不可或缺,但是每次在文件头COPY版本信息很麻烦,而且也不太容易控制.为了更好.更规范的去完成项目,需对项目文件做统一的格式来处理. 2 环境描述 ...

  9. 额的神啊~~可爱的Visual Studio把项目模板扔了

         机器环境:AMD Sempron 2200+:512M内存:Win2003 Enterprise Edition + SP1 +R2:Visual Studio 2005 Team Suit ...

最新文章

  1. xcode 消除警告
  2. unix command
  3. 图书大甩卖(操作系统、C语言、Linux) 已成交
  4. 摄像机投射投影模型_综述及详解
  5. 团队项目开发编码规范之一:概述
  6. java 整数溢出检测,Java如何处理整数下溢和溢出以及如何检查它?
  7. [转]iPhone本地化总结
  8. ▲数据结构 笛卡尔树【2011】五2 C++版
  9. html之特殊字符表
  10. mysql远程连接错误10038--navicat for mysql (10038)
  11. 王者-寻找庄家蛛丝马迹
  12. 冒泡排序算法详解之C语言版
  13. 使用ACR122U和Proxmark3复制IC卡
  14. 可靠的自托管「GitHub 热点速览 v.22.37」
  15. 为AutoCAD提供可用字体-CAD字体库大全提供下载
  16. EastFax 远程调用Ukey助力医学院
  17. 2020年全球电动汽车展望
  18. excel中快速输入打勾
  19. 以二叉链表为存储结构, 试编写计算二叉树中叶子结点数目的递归算法.
  20. Django项目定时任务(django-crontab)

热门文章

  1. 数据分析入门_char01
  2. 01背包初始化的细节问题与循环下限的改进
  3. Oracle 在 多个Virtualbox 虚拟机间 跨不同物理宿主机进行通信
  4. Html中value和name属性的作用
  5. 谁能给我讲讲原理——视频弹幕游戏!!
  6. 如何停止Internet Explorer 11的建议站点?
  7. android 设备名称_如何更改您的Android TV的设备名称
  8. html走马观花效果,走马观花台湾行 用EF-S 10-18来记录风景
  9. 【本人秃顶程序员】技巧分享丨spring的RestTemplate的妙用,你知道吗?
  10. linux shell 嵌套expect 与服务器交互脚本