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"?>
<package xmlns="http://schemas.microsoft.com/packaging/2012/06/nuspec.xsd">
  <metadata>
    <id>Server.Scaffold.WebAPI</id>
    <version>1.0.0.0</version>
    <description>
     微服务基础脚手架
    </description>
    <authors>Ives</authors>
    <packageTypes>
      <packageType name="Template" />
    </packageTypes>
  </metadata>
</package>
  1. 打包
nuget.exe pack .\Server.Scaffold.WebAPI.nuspec
  1. 将nuget包上传
    dotnet nuget push Server.Scaffold.WebAPI.1.0.0.2.nupkg --api-key keyxxxxx --source http://127.0.0.1:9011/v3/index.json

  2. 安装模板

dotnet new --install Server.Scaffold.WebAPI::1.0.0.0

如果修改了脚手架重新发布后需要更新模板(自动卸载并版本并安装最新版本)

dotnet new --install Server.Scaffold.WebAPI::1.0.0.2

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

posted @ 2022-01-12 10:16  Hey,Coder!  阅读(373)  评论(0编辑  收藏  举报