ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

vs项目模板创建和使用

2019-08-29 22:54:30  阅读:412  来源: 互联网

标签:项目 创建 MyTemplate vstemplate vs Template 模板


一、使用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模板文件)

标签:项目,创建,MyTemplate,vstemplate,vs,Template,模板
来源: https://www.cnblogs.com/LaughAtSelfsWrong/p/11432458.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有