使用.Net Core CLI命令dotnet new创建自定义模板
文章起源來自一篇博客:使用 .NET CORE 創建 項目模板,模板項目,Template - DeepThought - 博客園
之前使用Abp的時候就很認同Abp創建模板項目的方式。想不到.Net Core出了更贊的方式創建模板。之前寫過一個系列文章,有不少對Abp框架的改動(見文章:基于.NetCore和ABP框架如何讓Windows服務執行Quartz定時作業 - repeatedly - 博客園),如果將其加入自定義模板,應該是一個不錯的想法。
系統必備
.NET Core 2.2 SDK 或更高版本。
搭建模板項目
因為是對現有的項目改造,將其作為模板進行改造,所以就直接在原有的項目上處理。私以為實際項目使用的話,可以創建一個目錄名為AbpWindowsServiceTemplate,然后將項目拷貝進去。不多廢話了。
建立文件夾,名為.template.config
在該文件下,創建文件template.json
打開文件,模板配置內容如下
保存配置之后,這就算搭建成功。當然這是搭建一個項目的最基本配置,詳細配置參考請查閱?json.schemastore.org/template
基礎配置說明
$schema:template.json 文件的 JSON 架構。默認值使用http://json.schemastore.org/template。
author:模板作者
classifications:模板特征標識。上文舉例的配置是因為我自定義的模板包括了console和webapi。
identity:此模板的唯一名稱
name:用戶看到的模板名稱
shortName:短名稱。當使用CLI命令創建模板項目時,使用短名稱將利于使用。
sourceName:模板替換的關鍵文本,使用時需要注意,要選擇合適的替換文本,不然容易誤傷代碼。
如何使用
本地安裝模板
在文件夾.template.config所在目錄執行命令
dotnet new -i .上面的命令使用的是相對路徑進行安裝,還可以使用絕對路徑安裝。先卸載再嘗試一下絕對路徑安裝。
卸載模板
執行卸載命令
dotnet new -u執行之后可以看到羅列處理的所有已經安裝的模板,以及相應的卸載命令。找到需要卸載的模板,類似下文。
D:\GitHub\DotNetCore_Practice\ABP.WindowsServiceTemplates:MyJobTemplate (JT) C#Uninstall Command:dotnet new -u D:\GitHub\DotNetCore_Practice\ABP.WindowsService執行卸載命令
dotnet new -u D:\GitHub\DotNetCore_Practice\ABP.WindowsService結果如下,卸載成功,可以通過命令dotnet new -l查看是否卸載成功
PS D:\TestTemplate> dotnet new -u D:\GitHub\DotNetCore_Practice\ABP.WindowsService\Demo.MyJob PS D:\TestTemplate>絕對路徑安裝
卸載模板之后,嘗試絕對路徑安裝模板。嘗試如下,安裝成功
PS D:\TestTemplate> dotnet new -i D:\GitHub\DotNetCore_Practice\ABP.WindowsService\Demo.MyJob命令生成項目
JT是模板配置文件中指定的shortName。MyJob替換為Test,因為配置中sourceName是MyJob,可按需配置。D:\TestTemplate。
參考
使用 .NET CORE 創建 項目模板,模板項目,Template - DeepThought - 博客園
Home · dotnet/templating Wiki
dotnet new 自定義模板 - .NET Core CLI | Microsoft Docs
創建 dotnet new 項目模板 - .NET Core | Microsoft Docs
dotnet/dotnet-template-samples: Samples showing how to create templates using the Template Engine for dotnet new and Visual Studio
dotnet new 命令 - .NET Core CLI | Microsoft Docs
總結
以上是生活随笔為你收集整理的使用.Net Core CLI命令dotnet new创建自定义模板的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 【学习笔记】Docker - 02. 在
- 下一篇: asp.net core系列 71 We