VS 项目模板 自动创建项目结构 源码脚手架
实现效果:Vs创建项目,选择模板后自动生成项目结构,如下图
-
准备好脚手架需要的源码
-
在项目根目录创建目录【.template.config】注意不要漏掉前缀.
-
在.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 // 可选,添加目录
}
- 安装模板
//E:\ProjectTemplate为项目路径
dotnet new -i E:\ProjectTemplate
-
接下来就可以在vs中找到刚才的模板
-
其他
如果需要卸载,可以使用如下命令
dotnet new -u E:\Works\template\ProjectTemplate
//查看所有已经安装的模板
dotnet new -u
进阶 - 发布模板到Nuget
如图, vs中不直接包含Nuget
下载nuget
- 新建目录Template,在Template下创建目录content
- 将刚才的模板所有文件复制到content中
- 在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>
- 打包
nuget.exe pack .\Server.Scaffold.WebAPI.nuspec
-
将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
-
安装模板
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
留待后查,同时方便他人
联系我:renhanlinbsl@163.com
联系我:renhanlinbsl@163.com