DotNet 自定义模板

发布时间 2023-06-12 18:19:11作者: easy5

DotNet 自定义模板

创建目录结构

下面以为项目 artizan-abp-microservice 创建模板为例:

解决方案结构:

创建文件夹 templates,所有的项目模板将保存于此,

从gitee 下载 artizan-abp-microservice 项目代码:

git clone git@gitee.com:Artisan-k/artizan-abp-microservice.git

提示:

之所以使用 git clone 是过滤掉不必要的文件和文件夹,比如: bin文件,node_modles,若使用本地文件,还得清理这些文件和文件夹,影响本地开发。

把项目代码移动到 templates/artizan-abp-microservice/content 目录下,并创建如下的目录结构:

├── templates                          //  用来存放所有的模板
│   ├── artizan-abp-microservice       //  artizan-abp-microservice 模板全部内容
│   │    ├── content                   //  存放 Code 项目代码,可直接运行
│   │    │    ├── apps          
│   │    │    ├── gateways        
│   │    │    ├── services      
│   │    │    ├── ...         
│   │    │    └── MsOnAbp.sln     
│   │    │ 
│   │    ├── LICENSE.md    存放版本许可信息,如果不添加,后边会警告
│   │    │ 
│   │    └── 
│   │
│   └── 

template.json

创建文件夹templates\artizan-abp-microservice\content\.template.config,在其中在创建名为:template.json的定义模板的配置文件。

详细信息可以查看官网 :https://docs.microsoft.com/zh-cn/dotnet/core/tools/custom-templates

到目前为止,目录结构如下:

├── templates                          //  用来存放所有的模板
│   ├── artizan-abp-microservice       //  artizan-abp-microservice 模板全部内容
│   │    ├── content                   //  存放 Code 项目代码,可直接运行
│   │    │    ├── apps          
│   │    │    ├── gateways        
│   │    │    ├── services      
│   │    │    ├── ...         
│   │    │    └── MsOnAbp.sln   
│   │    │    ├── .template.config
│   │    │        ├── template.json
│   │    ├── LICENSE.md    存放版本许可信息,如果不添加,后边会警告
│   │    │ 
│   │    └── 
│   │
│   └── 

修改其内容为:

{
  "$schema": "http://json.schemastore.org/template",
  "author": "majiangfang",
  "classifications": ["Artizan", "Microservice", "ABP", "C#"],
  "identity": "Artizan.Abp.Microservice.Template",
  "sourceName": "MsOnAbp",
  "name": "Artizan ABP Microservice Template",
  "description": "Artizan ABP Microservice Template",
  "tags": {
    "language": "C#",
    "type": "solution"
  },
  "shortName": "artizan-abp-ms",
  "preferNameDirectory": true
}

生成本地模板

然后执行如下命令,生成本地模板:

> dotnet new install F:\05-workspace\dev\01-lab\abp-framework\templates\artizan-abp-microservice


将安装以下模板包:
   F:\05-workspace\dev\01-lab\abp-framework\templates\artizan-abp-microservice

成功: F:\05-workspace\dev\01-lab\abp-framework\templates\artizan-abp-microservice 已安装以下模板:
模板名                             短名称          语言  标记
---------------------------------  --------------  ----  ---------------------------
Artizan ABP Microservice Template  artizan-abp-ms  [C#]  Artizan/Microservice/ABP/C#

注意:短名称:artizan-abp-ms,后面我们将使用它来生成项目

使用本地模板生成项目

使用本地模板的短名称:artizan-abp-ms 来生成项目,执行如下命令生成一个项目:

> dotnet new artizan-abp-ms -n IotPlamform
已成功创建模板“Artizan ABP Microservice Template”。

生成的项目如下:

1686564526307

解决方案结构:

1686564565137

发布到 Nuget

(略)

参考资料

从壹开始前后端分离 39 || 想创建自己的dotnet模板么?看这里 - 老张的哲学 - 博客园 (cnblogs.com)