VS 项目模板 自动创建项目结构 源码脚手架


实现效果:Vs创建项目,选择模板后自动生成项目结构,如下图

  1. 准备好脚手架需要的源码

  2. 在项目根目录创建目录【.template.config】注意不要漏掉前缀.

  3. 在.template.config目录中创建文件【template.json】 内容如下

{
    "$schema": "http://json.schemastore.org/template",//template.json 文件的 JSON 架构,可以不要该键值对
    "author": "Ives", //必填!模板创建者
    "classifications": [ "Web/WebAPI" ], //必填,这个对应模板的Tags,其他的比如 [ "Common", "Console" ],
    "name": "Scaffold", //必填,这个是模板名,比如ASP.NET Core Web API
    "identity": "Cloud.Server.Scaffold", //可选,模板的唯一名称
    "shortName": "Scaffold", //必填,这个对应模板的短名称,比如webapi
    "tags": {
      "language": "C#" ,
      "type":"project"
    },
    "sourceName": "MES.Server.Scaffold",  // 可选,要替换的名字,这个就是模板的项目名,以后新建的时候,会把这个名字替换成其他(项目名称、名称空间等字符串均会替换)
    "preferNameDirectory": true  // 可选,添加目录  
}
  1. 安装模板
//E:\ProjectTemplate为项目路径
dotnet new -i E:\ProjectTemplate
  1. 接下来就可以在vs中找到刚才的模板

  2. 其他
    如果需要卸载,可以使用如下命令

dotnet new -u E:\Works\template\ProjectTemplate

//查看所有已经安装的模板
dotnet new -u

进阶 - 发布模板到Nuget

如图, vs中不直接包含Nuget

下载nuget

  1. 新建目录Template,在Template下创建目录content
  2. 将刚才的模板所有文件复制到content中
  3. 在Template下创建文件【Server.Scaffold.WebAPI.nuspec】,内容如下
    需要注意id需要在上传的nuget源中保持唯一
<?xml version="1.0" encoding="utf-8"?>

  
    Server.Scaffold.WebAPI
    1.0.0.0
    
     微服务基础脚手架
    
    Ives
    
      
    
  

  1. 打包
nuget.exe pack .\Server.Scaffold.WebAPI.nuspec
  1. 将nuget包上传
![](https://img2020.cnblogs.com/blog/944369/202201/944369-20220112101602243-1897836536.png)

  1. 安装模板
dotnet new --install Server.Scaffold.WebAPI::1.0.0.0

[引用]
[1] https://zhuanlan.zhihu.com/p/348550362
[2] http://tianfeng.cc/Article/4050
[3]
[4] https://docs.microsoft.com/zh-cn/dotnet/core/tutorials/cli-templates-create-item-template