.NetCore自定义模板,发布Nuget

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 uninstall 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 uninstall testtmp

      

 

 查看本地模板

dotnet new list

 

posted on   吐噜皮儿  阅读(569)  评论(0编辑  收藏  举报

编辑推荐:
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
阅读排行:
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 地球OL攻略 —— 某应届生求职总结
· 提示词工程——AI应用必不可少的技术
· 字符编码:从基础到乱码解决
· Open-Sora 2.0 重磅开源!
< 2025年3月 >
23 24 25 26 27 28 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31 1 2 3 4 5

统计

点击右上角即可分享
微信分享提示