目录
[2.1 什么是项目或项模板](#2.1 什么是项目或项模板)
[2.2 模板内容](#2.2 模板内容)
[3.3.1 选择菜单栏"项目"-》"导出模板"](#3.3.1 选择菜单栏“项目”-》“导出模板”)
[3.3.2 选择想要到处的模板。(项目模板或则项模板)](#3.3.2 选择想要到处的模板。(项目模板或则项模板))
[3.3.3 编辑模板相关内容,该信息为创建项目时,模板的名称和icon等](#3.3.3 编辑模板相关内容,该信息为创建项目时,模板的名称和icon等)
[4.1 创建项目搜索框搜索项目](#4.1 创建项目搜索框搜索项目)
[4.2 正常创建项目相关信息](#4.2 正常创建项目相关信息)
一、目的
在日常开发过程中为了方便的快速开发,特别是一些项目可能会存在基于现有项目创建的情况,本文介绍如何使用"导出模板向导"创建模板,将模板打包为 .zip 文件。
二、了解是项目模板
2.1 什么是项目或项模板
项目和项模板是可重用的存根,提供了一些基本代码和结构,供你根据自己的用途进行自定义。 通常,从项目模板开始,然后添加项模板。
例如:1、项目模板:VS中控制台项目、winform项目、Web项目等。通常可以理解包含基本代码结构的程序集。

2、项模板:项目常见的文件,类、接口、窗体等。

2.2 模板内容
所有项目模板和项模板(无论是与 Visual Studio 一起安装的还是由你创建的)均通过使用相同的原则工作并具有类似的内容。 所有模板均包含以下项:
1、使用模板时要创建的文件。 这些文件包括源代码文件、嵌入资源、项目文件等。
2、 一个 .vstemplate 文件,其中包含根据模板创建项目或项以及在"创建新项目"页面或"添加新项"对话框中显示模板所需的元数据。
XML
<VSTemplate Version="3.0.0" xmlns="http://schemas.microsoft.com/developer/vstemplate/2005" Type="Project">
<TemplateData>
<Name>console.Temp.Pro</Name>
<Description>测试模板内容</Description>
<ProjectType>CSharp</ProjectType>
<ProjectSubType>
</ProjectSubType>
<SortOrder>1000</SortOrder>
<CreateNewFolder>true</CreateNewFolder>
<DefaultName>console.Temp.Pro</DefaultName>
<ProvideDefaultName>true</ProvideDefaultName>
<LocationField>Enabled</LocationField>
<EnableLocationBrowseButton>true</EnableLocationBrowseButton>
<CreateInPlace>true</CreateInPlace>
<Icon>__TemplateIcon.png</Icon>
<PreviewImage>__PreviewImage.jpg</PreviewImage>
<LanguageTag>csharp</LanguageTag>
<PlatformTag>windows</PlatformTag>
<PlatformTag>linux</PlatformTag>
<PlatformTag>控制台测试模板</PlatformTag>
<ProjectTypeTag>console</ProjectTypeTag>
<ProjectTypeTag>desktop</ProjectTypeTag>
</TemplateData>
<TemplateContent>
<Project TargetFileName="console.Temp.Pro.csproj" File="console.Temp.Pro.csproj" ReplaceParameters="true">
<Folder Name="Controls" TargetFolderName="Controls">
<ProjectItem ReplaceParameters="true" TargetFileName="TestService.cs">TestService.cs</ProjectItem>
</Folder>
<ProjectItem ReplaceParameters="true" TargetFileName="Program.cs">Program.cs</ProjectItem>
<ProjectItem ReplaceParameters="true" TargetFileName="template.cs">template.cs</ProjectItem>
</Project>
</TemplateContent>
</VSTemplate>
三、使用"导出模板向导"
3.1、创建项目
这里默认创建一个控制台程序模板

ps:如果命名的项目是模板源,则只使用有效的标识符字符。 否则,从模板创建的项目中可能发生编译错误。 有关有效标识符字符的详细信息,请参阅已声明的元素名称 (Visual Basic) 或标识符 (C++)。 或者,可使用模板参数为类和命名空间使用"安全"名称。
如下图,在使用模板参数时可能出现编译储物

3.2、编辑项目
直到可以将它导出为一个模板。 例如,可能需要编辑代码文件以指出应替换参数的位置。 有关详细信息,请参阅如何:替换模板中的参数。如下图所示:可在项目模板中所有命名空间更改为模板参数中用户输入的项目名称。同时增加相关类或文件,知道调整为希望到处的模板项。

3.3、在"项目"菜单上,选择"导出模板"
3.3.1 选择菜单栏"项目"-》"导出模板"

3.3.2 选择想要到处的模板。(项目模板或则项模板)

3.3.3 编辑模板相关内容,该信息为创建项目时,模板的名称和icon等
在"选择模板选项"页上,输入模板的名称和可选说明、图标图像和预览图像。 这些项将显示在创建新项目所在的对话框中。 选择"完成"。
项目会导出到一个 .zip 文件中,并放在指定的输出位置,还可以导入到 Visual Studio(如果选择)。要在创建新项目所在的对话框中查找模板,请按名称搜索或浏览列表。 (用户模板目前无法根据语言或项目类型进行筛选。)
同时也可以不自定导入,解压zip后手动调整模板文件中的信息

ps: 如果未看到"导出模板"菜单项,则可以进行添加,方法是选择工具>自定义,选择"命令",选择"项目"菜单栏,选择"添加命令"按钮,然后在"项目"下选择"导出模板..."。


四、使用创建的项目模板
4.1 创建项目搜索框搜索项目
可通过搜索框搜索项目名称,若在模板文件中设置了语言、平台、项目类型信息,也可以下拉框筛选

4.2 正常创建项目相关信息

五、文章总结
VisualStudio的功能还是挺强大的,官网有很多功能一般情况都没用到。深耕技术栈的话值得多多探索。
把之所学,以文载之~ 欢迎大家多多交流