vs-项目模板创建和使用

一、使用dotnet命令创建(适用于.NET Core,可以创建包含任意数量个项目的模板,但不会出现在vs的新建项目模板中)

官方文档:https://docs.microsoft.com/zh-cn/dotnet/core/tools/custom-templates

  1. 拷贝所有要用作模板的项目到新建文件夹
  2. 在新建文件夹下添加./.template.config/template.json 文件
  3. 编辑template.json文件,内容如下:
    1 {
    2   "$schema": "http://json.schemastore.org/template",
    3   "author": "Travis Chau",
    4   "classifications": [ "Common", "Console" ],
    5   "identity": "AdatumCorporation.ConsoleTemplate.CSharp",
    6   "name": "Adatum Corporation Console Application",
    7   "shortName": "adatumconsole"
    8 }

     

  4. 在新建文件夹路径下使用dotnet命令创建模板:dotnet new -i .
  5. 从模板新建项目: dotnet new <模板名> -n <用来替换模板名的名称> -o <新项目路径>
  6. 卸载模板:dotnet new -u <模板路径>


二、vs》项目》导出模板(适用于多种语言,可在vs的新建项目模板中使用)

 官方文档:https://docs.microsoft.com/zh-cn/visualstudio/ide/creating-project-and-item-templates?view=vs-2017

  1. 单个项目模板vs导出:

    项目》导出模板
    vs的新建项目的用户模板的存储路径:%USERPROFILE%\Documents\Visual Studio 2017\Templates\ProjectTemplates
    模板的配置文件(在导出模板生成的压缩文件中):MyTemplate.vstemplate
    模板参数:https://docs.microsoft.com/zh-cn/visualstudio/ide/template-parameters?view=vs-2017

  2. 多个项目模板vs导出:
    每个项目单独导出模板
    创建根项目文件夹
    将全部模板解压到根项目文件夹
    根项目文件夹下创建MultiProjectTemplate.vstemplate文件
    MultiProjectTemplate.vstemplate内容示例如下:
     1 <VSTemplate Version="2.0.0" Type="ProjectGroup"
     2     xmlns="http://schemas.microsoft.com/developer/vstemplate/2005">
     3   <TemplateData>
     4     <Name>Template</Name>
     5     <Description>An example of a multi-project template</Description>
     6     <Icon>__TemplateIcon.ico</Icon>
     7     <ProjectType>CSharp</ProjectType>
     8   </TemplateData>
     9   <TemplateContent>
    10     <ProjectCollection>
    11       <SolutionFolder Name="1-Presentation">
    12         <ProjectTemplateLink ProjectName="$safeprojectname$.Presentation.WebAPI" CopyParameters="true">
    13           Template.Presentation.WebAPI\MyTemplate.vstemplate
    14         </ProjectTemplateLink>
    15       </SolutionFolder>
    16       <SolutionFolder Name="2-Application">
    17         <ProjectTemplateLink ProjectName="$safeprojectname$.Application.IService" CopyParameters="true">
    18           Template.Application.IService\MyTemplate.vstemplate
    19         </ProjectTemplateLink>
    20         <ProjectTemplateLink ProjectName="$safeprojectname$.Application.Service" CopyParameters="true">
    21           Template.Application.Service\MyTemplate.vstemplate
    22         </ProjectTemplateLink>
    23       </SolutionFolder>
    24       <SolutionFolder Name="3-Domain">
    25         <ProjectTemplateLink ProjectName="$safeprojectname$.Domain.IService" CopyParameters="true">
    26           Template.Domain.IService\MyTemplate.vstemplate
    27         </ProjectTemplateLink>
    28         <ProjectTemplateLink ProjectName="$safeprojectname$.Domain.Service" CopyParameters="true">
    29           Template.Domain.Service\MyTemplate.vstemplate
    30         </ProjectTemplateLink>
    31       </SolutionFolder>
    32       <SolutionFolder Name="4-Infrastructure">
    33         <ProjectTemplateLink ProjectName="Template.Infrastructure.Show" CopyParameters="true">
    34           Template.Infrastructure.Show\MyTemplate.vstemplate
    35         </ProjectTemplateLink>
    36       </SolutionFolder>
    37     </ProjectCollection>
    38   </TemplateContent>
    39 </VSTemplate>

    使用$ext_safeprojectname$修改所有项目文件中需要应用根模板的应用名的地方(.csproj项目文件,.cs代码文件以及.vstemplate模板文件)
    最后将修改好的模板重新打包放至用户模板的存储路径,即可在vs新建项目中看到自己的模板

posted @ 2019-08-29 22:43  自笑非  阅读(4302)  评论(0编辑  收藏  举报