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. IIS部署WGCMS

    一.下载所需的微软程序文件 安装插件:下载后直接安装就可以了,没有什么好说的. 安装1:点击下载 安装2:点击下载 二.在IIS上添加应用程序池 打开IIS,按照图片所示:在"应用程序池&q ...

  2. 一台电脑连接多个不同IP段

    1.首先让电脑能联网,则在ipv4里面设置好能上网的ip地址,dns则为路由器ip 备用dns8.8.8.8 2.点击高级依次添加其他内网ip段 例如192.168.0.66 ----------19 ...

  3. MySQL5.7升级版本到8.0

    升级二进制包安装的MySQL In-Place Upgrade(替代升级) 替代升级涉及到shutdown down旧版本的MySQL,用新版本的包替代旧版本的二进制包,用存在的数据文件目录重启MyS ...

  4. 一台服务器部署ShareWAF,后面接多台Web服务器,该如何配置?

    ShareWAF做为WAF,可以不只是WAF,还可以充当负载或路由的角色. 比如可以有这样一种部署架构: 在此结构中,ShareWAF部署于一台服务器,后面接多台独立的WEB服务器. ShareWAF ...

  5. Unity 使整个UnityUI变成彩色的BUG

    最近接手了一个两年前的老项目,在这个项目里碰到一个BUG ,每次运行到这个场景的时候,整个Unity 的所有UI包括Unity界面都会变成彩色. 后来发现是因为物体丢失,代码修改Image里的图片颜色 ...

  6. allure+junit5遇到的一些问题

    java+junit5+allure 之前引testng,还比较顺利,见上一篇博客,然后testng的注解和junit不一样,感觉junit5更好用一些,所以尝试java+junit5+allure ...

  7. k8s暂停一个pod

    模拟k8s暂停一个服务:kubectl scale --replicas=0 deployment/[deployment]  -n [namespace](如要恢复设置参数--replicas=1即 ...

  8. kubeSphere+kubernetes 集群更新证书

    模拟问题点 使用kubernetes时错误提示 yang@master:~$ kubectl get nodes Unable to connect to the server: x509: cert ...

  9. Dockerfile打包java应用

    #基础镜像 FROM openjdk:8-jre # 作者 MAINTAINER hg #挂载目录 VOLUME /home/hg #创建目录 RUN mkdir /home/hg #指定工作目录 W ...

  10. 使用fopen,fscanf等函数报安全性问题的错误,unsafe...

    方法一:项目-属性-C/C++-预处理器定义,添加_CRT_SECURE_NO_WARNINGS. 方法二:使用fopen_s,fscanf_s等安全函数.