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. EF Core迁移 (provider: SSL Provider, error: 0 - 证书链是由不受信任的颁发机构颁发的。)

    A connection was successfully established with the server, but then an error occurred during the log ...

  2. linux中磁盘如何由dos格式怎么变为gpt格式

    一般情况下,我们进行磁盘分区管理使用gdisk命令比较方便快捷,但假如我们想要大于2T的磁盘使用fdisk命令已经无法使用,此刻我们该怎么办?这时我们可以使用parted命令来把磁盘转换为gpt格式, ...

  3. docker配置文件模板

    { "registry-mirrors": [ "https://bxsfpjcb.mirror.aliyuncs.com" ], "max-conc ...

  4. sql server 最近执行语句统计查询分析

    查询语句: select * from ( SELECT [RowNumber],DATEDIFF(second, StartTime, isnull(EndTime ,StartTime)) 执行时 ...

  5. 粉色的猫MISC(bugku)

    一  题目描述 ps:本题特别感谢树叶大佬给的一些提示以及WP!欢迎大家关注树木有点绿~~ 二 解题过程 下载附件得到zip压缩包 根据作者提示,压缩包注释应该为压缩包密码. 1.压缩包密码 一开始看 ...

  6. leecode72. 编辑距离

    72. 编辑距离 给你两个单词 word1 和 word2, 请返回将 word1 转换成 word2 所使用的最少操作数 . 你可以对一个单词进行如下三种操作: 插入一个字符 删除一个字符 替换一个 ...

  7. springboot ElasticsearchRepository date_histogram 聚合查询

    NativeSearchQueryBuilder nsqb = new NativeSearchQueryBuilder(); DateHistogramAggregationBuilder dhb ...

  8. [737] Interlude OpCodez

    [737] Interlude Client 00 SendProtocolVersion 01 MoveBackwardToLocation 02 Say 03 RequestEnterWorld ...

  9. Java笔记_this关键字_HomeWork(1 - 4 题)

    第一题 /** * @ClassName HomeWork01 * @Description TODO * @Author Orange * @Date 2021/4/23 8:14 * @Versi ...

  10. Gitbook部署之nodejs踩坑

    title: Gitbook部署之nodejs踩坑 date: 2020-11-06 16:34:30 summary: Gitbook部署和NVM的使用.hexo失效 Gitbook部署之nodej ...