.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
.NetCore自定义模板,发布Nuget的更多相关文章
- 利用 Azure Devops 创建和发布 Nuget 包
利用 Azure Devops 创建和发布 Nuget 包 原 Visual Studio Team Service ,简称 VSTS,能够创建 pipelines 管道以构建应用程序,并将其部署到任 ...
- Printing tools 自定义模板打印的实现
#ArcGIS for Server 自定义打印两种方法 友好阅读版本: http://gishub.info/2013/09/17/printingtools/ ## 前言使用web打印会遇到中文乱 ...
- Django之博客系统:自定义模板标签
Django提供了很多内置的模板标签比如{% if %}或者{% block %}Django也允许你创建自己的模板标签(template tags)来执行自定义的动作.当你需要在你的模板中添加功能而 ...
- 使用.Net Core CLI命令dotnet new创建自定义模板
文章起源来自一篇博客:使用 .NET CORE 创建 项目模板,模板项目,Template - DeepThought - 博客园 之前使用Abp的时候就很认同Abp创建模板项目的方式.想不到.Net ...
- Springboot 结合百度IORC实现自定义模板图片识别
前言: 首先呢,最近再公司的项目当中遇到这样的一个问题,就是需要识别图片,提取图片当中的关键语句,而且识别的语句当然是人家手写体识别,翻来覆去一想,最终还是决定使用百度的OCR帮助我解决这一项需求 话 ...
- Django自定义模板
定义simple_tag步骤 一.创建templatetags文件 首先在app下创建templatetags文件:名字不许叫这个,不能改变. 二.在文件中创建一个py文件 文件名自定义 三.在创建的 ...
- 学习CodeIgniter框架之旅(一)自定义模板目录
在常用的框架本身都已经做好了分层和目录结构,但这在很多时候不满足项目的需求甚至在某些情况下变得不合理,因此很多时候需要自定义目录结构,在此就看看如果在CodeIgniter框架中自定义模板目录: 在C ...
- .NET/ASP.NETMVC 深入剖析 Model元数据、HtmlHelper、自定义模板、模板的装饰者模式(三)
阅读目录: 7.HtmlHelper.HtmlHelper<T>中的ViewModel的类型推断 8.控制ViewModel中的某个属性的呈现(使用PartialView部分视图细粒度控制 ...
- 使用requireJS,backboneJS,和underscoreJS完成自定义模板封装
使用requireJS,backboneJS,和underscoreJS完成自定义模板封装 原来的代码 当我们进行一个列表的数据填充的时候,是这样做的: //获取美食列表 function getFo ...
- DISCUZ 自定义模板
DISCUZ 自定义模板 模板安装和维护 安装新模板 将模板template打包放在对应目录:template/ 后台 -> 界面 -> 风格管理 , 安装模板 后台 -> 界面 - ...
随机推荐
- EF Core迁移 (provider: SSL Provider, error: 0 - 证书链是由不受信任的颁发机构颁发的。)
A connection was successfully established with the server, but then an error occurred during the log ...
- linux中磁盘如何由dos格式怎么变为gpt格式
一般情况下,我们进行磁盘分区管理使用gdisk命令比较方便快捷,但假如我们想要大于2T的磁盘使用fdisk命令已经无法使用,此刻我们该怎么办?这时我们可以使用parted命令来把磁盘转换为gpt格式, ...
- docker配置文件模板
{ "registry-mirrors": [ "https://bxsfpjcb.mirror.aliyuncs.com" ], "max-conc ...
- sql server 最近执行语句统计查询分析
查询语句: select * from ( SELECT [RowNumber],DATEDIFF(second, StartTime, isnull(EndTime ,StartTime)) 执行时 ...
- 粉色的猫MISC(bugku)
一 题目描述 ps:本题特别感谢树叶大佬给的一些提示以及WP!欢迎大家关注树木有点绿~~ 二 解题过程 下载附件得到zip压缩包 根据作者提示,压缩包注释应该为压缩包密码. 1.压缩包密码 一开始看 ...
- leecode72. 编辑距离
72. 编辑距离 给你两个单词 word1 和 word2, 请返回将 word1 转换成 word2 所使用的最少操作数 . 你可以对一个单词进行如下三种操作: 插入一个字符 删除一个字符 替换一个 ...
- springboot ElasticsearchRepository date_histogram 聚合查询
NativeSearchQueryBuilder nsqb = new NativeSearchQueryBuilder(); DateHistogramAggregationBuilder dhb ...
- [737] Interlude OpCodez
[737] Interlude Client 00 SendProtocolVersion 01 MoveBackwardToLocation 02 Say 03 RequestEnterWorld ...
- Java笔记_this关键字_HomeWork(1 - 4 题)
第一题 /** * @ClassName HomeWork01 * @Description TODO * @Author Orange * @Date 2021/4/23 8:14 * @Versi ...
- Gitbook部署之nodejs踩坑
title: Gitbook部署之nodejs踩坑 date: 2020-11-06 16:34:30 summary: Gitbook部署和NVM的使用.hexo失效 Gitbook部署之nodej ...