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

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

  1. 拷贝所有要用作模板的项目到新建文件夹
  2. 在新建文件夹下添加./.template.config/template.json 文件
  3. 编辑template.json文件,内容如下:
     {
    "$schema": "http://json.schemastore.org/template",
    "author": "Travis Chau",
    "classifications": [ "Common", "Console" ],
    "identity": "AdatumCorporation.ConsoleTemplate.CSharp",
    "name": "Adatum Corporation Console Application",
    "shortName": "adatumconsole"
    }
  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内容示例如下:
     <VSTemplate Version="2.0.0" Type="ProjectGroup"
    xmlns="http://schemas.microsoft.com/developer/vstemplate/2005">
    <TemplateData>
    <Name>Template</Name>
    <Description>An example of a multi-project template</Description>
    <Icon>__TemplateIcon.ico</Icon>
    <ProjectType>CSharp</ProjectType>
    </TemplateData>
    <TemplateContent>
    <ProjectCollection>
    <SolutionFolder Name="1-Presentation">
    <ProjectTemplateLink ProjectName="$safeprojectname$.Presentation.WebAPI" CopyParameters="true">
    Template.Presentation.WebAPI\MyTemplate.vstemplate
    </ProjectTemplateLink>
    </SolutionFolder>
    <SolutionFolder Name="2-Application">
    <ProjectTemplateLink ProjectName="$safeprojectname$.Application.IService" CopyParameters="true">
    Template.Application.IService\MyTemplate.vstemplate
    </ProjectTemplateLink>
    <ProjectTemplateLink ProjectName="$safeprojectname$.Application.Service" CopyParameters="true">
    Template.Application.Service\MyTemplate.vstemplate
    </ProjectTemplateLink>
    </SolutionFolder>
    <SolutionFolder Name="3-Domain">
    <ProjectTemplateLink ProjectName="$safeprojectname$.Domain.IService" CopyParameters="true">
    Template.Domain.IService\MyTemplate.vstemplate
    </ProjectTemplateLink>
    <ProjectTemplateLink ProjectName="$safeprojectname$.Domain.Service" CopyParameters="true">
    Template.Domain.Service\MyTemplate.vstemplate
    </ProjectTemplateLink>
    </SolutionFolder>
    <SolutionFolder Name="4-Infrastructure">
    <ProjectTemplateLink ProjectName="Template.Infrastructure.Show" CopyParameters="true">
    Template.Infrastructure.Show\MyTemplate.vstemplate
    </ProjectTemplateLink>
    </SolutionFolder>
    </ProjectCollection>
    </TemplateContent>
    </VSTemplate>

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

vs项目模板创建和使用的更多相关文章

  1. 2.2 利用项目模板创建ASP.NET MVC项目

    1.启动VS2012,点击“文件|新建|项目”. 2.在新建项目的窗口中,选择ASP.NET MVC 4应用程序. 3.在新ASP.NET MVC 4项目窗口中的“选择模板”列表中选择“基本”模板,在 ...

  2. 基于空项目模板创建使用Owin来host的WebApi项目

    首先创建一个空的web项目,如下图所示: 项目创建成功以后,安装下面三个package. Install-Package Microsoft.AspNet.WebApi -Version 5.2.2I ...

  3. vs创建项目模板和项模板

    原文地址:https://msdn.microsoft.com/zhcn/library/xkh1wxd8(v=vs.140).aspx 如何:创建项目模板 Visual Studio 2015   ...

  4. Cookiecutter: 更好的项目模板工具:(1)简介及可用资源汇总

    原文档地址:https://cookiecutter.readthedocs.io/en/latest/ 本系列只介绍cookiecutter的基础使用,而且会删除与功能使用无关的部分.深度使用及了解 ...

  5. 用Visual Studio2019自定义项目模板

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

  6. VS2019 自定义项目模板

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

  7. ABAP BAPI 复制标准项目模板实现项目立项

    一.复制标准项目模板实现项目立项 因为CJ20N录屏存在困难,所以想通过BDC实现复制项目模板创建项目立项行不通,因此需要通过BAPI解决. 因为项目立项包含:项目定义.WBS.网络.作业,因此需要分 ...

  8. VS自定义项目模板:[2]创建VSIX项目模板扩展

    VS自定义项目模板:[2]创建VSIX项目模板扩展 听语音 | 浏览:1237 | 更新:2015-01-02 09:21 | 标签:软件开发 1 2 3 4 5 6 7 分步阅读 一键约师傅 百度师 ...

  9. 创建Visual studio项目模板 vstemplate关键点纪要

    from:http://www.cnblogs.com/stickman/p/3454719.html 经过多次的实验,终于完美生成一个.VSIX的项目模板安装包,其中遇到不少问题与挫折,久经goog ...

随机推荐

  1. UML建模——活动图(Activity Diagram)

    活动图概述 •活动图和交互图是UML中对系统动态方面建模的两种主要形式 •交互图强调的是对象到对象的控制流,而活动图则强调的是从活动到活动的控制流 •活动图是一种表述过程基理.业务过程以及工作流的技术 ...

  2. html表格导出Excel的一点经验心得

    最近在做统计功能,要求统计结果(表格)既能查看(BS系统,在浏览器查看),又能输出为excel文件.对于输出excel文件,在网上找到n种方案,因为还需查看,最终选择了统计结果输出为table,查看时 ...

  3. bat 获取 exe 文件中 产品版本号并存储到变量中

    set EXE='D:\gitlab\drivereasy3\DriverEasyWPF\bin\Release\DriverEasy.exe' powershell "(Get-Item ...

  4. Error-JavaScript:SCRIPT1007: 缺少 ']'

    ylbtech-Error-JavaScript:SCRIPT1007: 缺少 ']' SCRIPT1007: 缺少 ']' 1.返回顶部 · if (flag) { return eval(&quo ...

  5. openresty开发系列24--openresty中lua的引入及使用

    openresty开发系列24--openresty中lua的引入及使用 openresty 引入 lua 一)openresty中nginx引入lua方式 1)xxx_by_lua   ---> ...

  6. 十九款web漏洞扫描工具

    1. Arachni Arachni是一款基于Ruby框架搭建的高性能安全扫描程序,适用于现代Web应用程序.可用于Mac.Windows及Linux系统的可移植二进制文件. Arachni不仅能对基 ...

  7. SeetaFaceEngine2 实例

    LOG: Creating layer(6):LOG: Creating layer(0):LOG: Creating layer(9):LOG: Creating layer(0):LOG: Cre ...

  8. PP篇7 生产替代料齐套后处理

    扫描可关注本人技术分享公众号,与您一起学习新知! 对于计划订单和生产订单, 当存在替代料的时候,完成齐套性检查后,按照可齐套量进行拆单,并删除不能齐套的替代料(有个删除规则).不能齐套就按照优先级最高 ...

  9. 【Leetcode_easy】1160. Find Words That Can Be Formed by Characters

    problem 1160. Find Words That Can Be Formed by Characters solution class Solution { public: int coun ...

  10. Input.GetMouseButtonDown 在fixedupdate中会出现丢失问题,在update中则完全没这个问题

    Input.GetMouseButtonDown 在fixedupdate中会出现丢失问题,在update中则完全没这个问题