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

.NetCore自定义模板,发布Nuget的更多相关文章

  1. 利用 Azure Devops 创建和发布 Nuget 包

    利用 Azure Devops 创建和发布 Nuget 包 原 Visual Studio Team Service ,简称 VSTS,能够创建 pipelines 管道以构建应用程序,并将其部署到任 ...

  2. Printing tools 自定义模板打印的实现

    #ArcGIS for Server 自定义打印两种方法 友好阅读版本: http://gishub.info/2013/09/17/printingtools/ ## 前言使用web打印会遇到中文乱 ...

  3. Django之博客系统:自定义模板标签

    Django提供了很多内置的模板标签比如{% if %}或者{% block %}Django也允许你创建自己的模板标签(template tags)来执行自定义的动作.当你需要在你的模板中添加功能而 ...

  4. 使用.Net Core CLI命令dotnet new创建自定义模板

    文章起源来自一篇博客:使用 .NET CORE 创建 项目模板,模板项目,Template - DeepThought - 博客园 之前使用Abp的时候就很认同Abp创建模板项目的方式.想不到.Net ...

  5. Springboot 结合百度IORC实现自定义模板图片识别

    前言: 首先呢,最近再公司的项目当中遇到这样的一个问题,就是需要识别图片,提取图片当中的关键语句,而且识别的语句当然是人家手写体识别,翻来覆去一想,最终还是决定使用百度的OCR帮助我解决这一项需求 话 ...

  6. Django自定义模板

    定义simple_tag步骤 一.创建templatetags文件 首先在app下创建templatetags文件:名字不许叫这个,不能改变. 二.在文件中创建一个py文件 文件名自定义 三.在创建的 ...

  7. 学习CodeIgniter框架之旅(一)自定义模板目录

    在常用的框架本身都已经做好了分层和目录结构,但这在很多时候不满足项目的需求甚至在某些情况下变得不合理,因此很多时候需要自定义目录结构,在此就看看如果在CodeIgniter框架中自定义模板目录: 在C ...

  8. .NET/ASP.NETMVC 深入剖析 Model元数据、HtmlHelper、自定义模板、模板的装饰者模式(三)

    阅读目录: 7.HtmlHelper.HtmlHelper<T>中的ViewModel的类型推断 8.控制ViewModel中的某个属性的呈现(使用PartialView部分视图细粒度控制 ...

  9. 使用requireJS,backboneJS,和underscoreJS完成自定义模板封装

    使用requireJS,backboneJS,和underscoreJS完成自定义模板封装 原来的代码 当我们进行一个列表的数据填充的时候,是这样做的: //获取美食列表 function getFo ...

  10. DISCUZ 自定义模板

    DISCUZ 自定义模板 模板安装和维护 安装新模板 将模板template打包放在对应目录:template/ 后台 -> 界面 -> 风格管理 , 安装模板 后台 -> 界面 - ...

随机推荐

  1. 野火FreeRTOS第九章(任务延时列表)实验意外解决办法

    书中说:main()函数内容与第8章一样,无需改动. 但实际代码中,添加了在开启调度前关闭中断的函数,如下红色代码所示: int main(void) { /* 硬件初始化 */ /* 将硬件相关的初 ...

  2. cuda+pytorch环境安装

    本机cuda版本为v11.5 conda install cudatoolkit 使用 CUDA 11.3版本的配置 conda install pytorch==1.11.0 torchvision ...

  3. 【C学习笔记】day3-1 将数组A中的内容和数组B中的内容进行交换。(数组一样大)

    #include <stdio.h> int main() { int a[5]; for (int i = 0; i < 5; i++) { scanf_s("%d&qu ...

  4. 2021.09 ccf csp 第四题 收集卡牌

    2021.09 ccf csp 第四题 收集卡牌 思路 这题如果直接计算,因为不同的分类种数太多,枚举所有的分类情况是一个几乎不可能的复杂任务. 但不同摸牌次数,不同已摸出牌种类的子问题的答案之间,具 ...

  5. 代码随想录训练营day 4|链表基础理论,移除链表元素,设计链表,反转链表

    链表理论基础 链表是一种由指针串联在一起的线性结构,每一个节点都由一个数据域和一个指针域组成. 链表的类型有:单链表.双链表.循环链表. 链表的存储方式:在内存中不连续分布. 链表的定义很多人因为不重 ...

  6. SVG 从入门到后悔,怎么不早点学起来(图解版)

    点赞 + 关注 + 收藏 = 学会了 作为一只前端,只懂 Vue.React 感觉已经和大家拉不开距离了. 可视化.机器学习等领域 JS 都有涉及到,而可视化方面已经被很多领域用到,比如大屏项目. 可 ...

  7. kail 系统更新

    原文链接:https://blog.csdn.net/aiming66/article/details/123203495

  8. 前端下载的方式总结(url,文件流,压缩包)

    1.比较常见的是通过a标签的href属性直接访问文件url地址. (1)const downloadUrl = (url: string, file_name?: string) => { if ...

  9. nginx重启报错 nginx: [error] open() “/run/nginx.pid“ failed (2: No such file or directory)

    原文: https://blog.csdn.net/CRMEB/article/details/120779362 nginx [error] open() "/usr/local/var/ ...

  10. CTF学习笔记(三)php部分

    三.常见PHP用法与漏洞 (〇)php的备份文件与phps php的备份文件一般是*.php.bak,在根目录下输入/index.php.bak, 下载 备份文件. phps文件就是php的源代码文件 ...