1.创建模板项目框架
2.创建模板文件
在项目文件夹根目录创建.template.config
文件夹,在文件夹下创建新的文件:template.json
内容如下
{ "$schema": "https://json.schemastore.org/template.json", "author": "cwsheng", // 模板作者 必须 "classifications": [ "G6Test", "web api" ], //必须,这个对应模板的Tags 模板特征标识。上文举例的配置是因为我自定义的模板包括了console和webapi "name": "TestTmp", //必须,这个对应模板的Templates 用户看到的模板名称 "identity": "TestTemplate", //可选,模板的唯一名称 "shortName": "testtmp", //必须,这个对应模板的Short Name 短名称。当使用CLI命令创建模板项目时,使用短名称将利于使用。 "tags": { "language": "C#", "type": "project" }, "sourceName": "Test", // 可选,要替换的名字 //"preferNameDirectory": true // 可选,添加目录 "symbols": { //是否使用分层模板 "EnableFramework": { "type": "parameter", //它是参数 "dataType": "bool", //bool类型的参数 "defaultValue": "true" //默认是启用 } }, "sources": [ { "modifiers": [ { "condition": "(!EnableFramework)", //条件,由EnableFramework参数决定 "exclude": [ //排除下面的文件 支持Dic/** 以及Dic/*.cs的方式 "Test.Domain/**", "Test.Domain.Share/**", "Test.IServices/**", "Test.Services/**" ] } ] } ] }
3.安装模板
项目目录打开命令行,运行以下命令以安装位于当前文件夹的模板:
安装模板 (绝对路径) dotnet new install D:\MyProject\Test-DotnetNew\TestTemplate --force
卸载模板 dotnet new unsnstall D:\MyProject\Test-DotnetNew\TestTemplate
查看模板
查看模板支持选项
使用新模板创建项目
// -n 项目名称 -o 生成项目路径 -E/--EnableFramework 自定义命令 (生成项目模式)
dotnet new testtmp -n 111222 -E false
4.发布Nuget包,远程使用
创建Nuget配置文件,放到项目目录 需要注意的是files>file节点,这里用来排除模板中各子项目下的bin和obj文件夹。
<?xml version="1.0" encoding="utf-8"?> <package xmlns="http://schemas.microsoft.com/packaging/2010/07/nuspec.xsd"> <metadata> <id>testTmp</id> <version>1.0.0</version> <description> 动态模板包 </description> <authors>testG6</authors> <packageTypes> <packageType name="TestTemplate" /> </packageTypes> </metadata> <files> <file src="TestTemplate\**" target="TestTemplate" exclude="**\bin\**;**\obj\**" /> </files> </package>
打包模板,并生成.nupkg文件
下载nuget.exe文件
下载路径:https://www.nuget.org/downloads
选择合适的版本,下载文件夹下。
打包模板,并生成.nupkg文件
-OutputDirectory ./ 生成路径(默认当前路径)
D:\MyProject\Test-DotnetNew>nuget.exe pack TestTemplate/apiTmp.nuspec
生成testTmp.1.0.0.nupkg 包
发布包至Nuget仓
dotnet nuget push --source "你的项目名" --api-key az --interactive ./bin/Debug/azure_nuget.1.0.0.nupkg (暂未推送)
通过拉取Nuget包,加载自定义模板
dotnet new --install testTmp::1.0.0 //(Nuget包名称::版本)
查看本地模板
dotnet new list
标签:自定义,NetCore,--,Nuget,dotnet,Test,模板 From: https://www.cnblogs.com/loloAdd/p/17144098.html