首先说明,尊重原创,本文是参考https://www.cnblogs.com/myshowtime/p/14507675.html这篇文章写的,里面内容有部分是直接拷贝过来的。感谢作者分享!!!

前期准备工作

使用命令 abp new LS.Template --template module --no-ui --version 4.3.0 创建基于abp vnext 4.3.0的项目。然后在这个解决方案的基础上,删除多余的东东,并加入自己团队的元素。

这部分不是本文重点,所以不做过多介绍。

模板项目位置

模板项目结构

构建模板

先在“\template\templates”目录下创建“.template.config”目录,具体命令为:mkdir .template.config ,

然后在该目录下添加“template.json”文件,具体内容为:

{"$schema": "http://json.schemastore.org/template","author": "Ben","classifications": [ "Template" ],"name": "LS.Template","identity": "LS.Template", "shortName": "ls-template","tags": {"language": "C#" },"sourceName": "Template"
}

上面是一些基本的描述信息,需要注意的是 "sourceName" 属性,它相当于一个变量,我们通过这个属性,可以创建LS.BaseInfo,LS.Trace这样的解决方案和项目。

另外,特别说明一点:如果我的模板项目是LS.Equipment,那么sourceName的值改为Equipment也是可以生成脚手架的。

打包模板

在“\template”目录下添加“template-pack.csproj”文件

具体内容为:

<Project Sdk="Microsoft.NET.Sdk"><PropertyGroup><PackageType>Template</PackageType><PackageVersion>1.0.0</PackageVersion><PackageId>LS.Template</PackageId><Title>LS.Template</Title><Authors>Ben</Authors><Description>LS.Template</Description><PackageTags>dotnet-new;templates;LS.Template</PackageTags><TargetFramework>netstandard2.1</TargetFramework><IncludeContentInPack>true</IncludeContentInPack><IncludeBuildOutput>false</IncludeBuildOutput><ContentTargetFolders>content</ContentTargetFolders><NoWarn>$(NoWarn);NU5128</NoWarn></PropertyGroup><ItemGroup><Content Include="templates\**\*" Exclude="templates\**\bin\**;templates\**\obj\**;templates\.git" /><Compile Remove="**\*" /></ItemGroup>
</Project>

我们指定了程序包的基础信息,版本ID, 描述信息,包含了 templates 文件夹下的所有文件,然后排除了 bin\ 和 obj\ 文件夹的dll文件。

运行 dotnet pack 命令进行打包, 你可以在 /bin/debug/ 文件夹找到 生成的 nupkg 文件

推送到Nuget服务器

从网上下载一个nuget.exe文件,放在 /template 目录下,我的nuget.exe的版本是:5.6.0

然后执行以下命令,输入账号、密码,将代码推送到nuget仓库:

nuget.exe push bin/debug/LS.Template.0.1.0.nupkg ben111 -Source http://192.168.3.222:8081/repository/nuget-hosted/

说明:我的nuget仓库是使用nexus搭建的。上面命令中的ben111相当于是这个仓库的key,这么理解就可以了。不加也没关系,我的另一篇文章有说明。linux下 docker + nexus 搭建.net core能使用的nuget服务器

下面看下效果:

安装模板

安装前,你的nuget包源,必须事先添加了自己的nuget仓库地址,不然无法安装。

至于如何添加nuget包源,有2种方式,第一种是在vs2019 nuget包管理器里面添加;第二种是通过dotnet nuget命令添加。

在终端中运行  dotnet new --install LS.Template  命令安装,安装成功后,应该可以看到下边的输出,里边包含了我们的自定义模板。

或者使用 dotnet new --list 命令查看,没问题的话,列表里面应该会有。

使用模板

运行  dotnet new LS.Template --name=BaseInfo ,--name 指定了变量值,它会自动帮我们生成 BaseInfo 项目,这很棒!牛逼!

至此,大功告成。概括一下:

打包: dotnet pack

推送: nuget.exe push bin/debug/LS.Template.0.1.0.nupkg ben111 -Source http://192.168.3.222:8081/repository/nuget-hosted/

安装: dotnet new --install LS.Template

使用: dotnet new LS.Template --name=BaseInfo

基于abp vnext制作项目脚手架相关推荐

  1. 基于 abp vNext 和 .NET Core 开发博客项目 - Blazor 实战系列(四)

    基于 abp vNext 和 .NET Core 开发博客项目 - Blazor 实战系列(四) 转载于:https://github.com/Meowv/Blog 上一篇完成了博客的分页查询文章列表 ...

  2. 基于 abp vNext 和 .NET Core 开发博客项目 - Blazor 实战系列(三)

    基于 abp vNext 和 .NET Core 开发博客项目 - Blazor 实战系列(三) 转载于:https://github.com/Meowv/Blog 上一篇完成了博客的主题切换,菜单和 ...

  3. 基于 abp vNext 和 .NET Core 开发博客项目 - 终结篇之发布项目

    基于 abp vNext 和 .NET Core 开发博客项目 - 终结篇之发布项目 转载于:https://github.com/Meowv/Blog 既然开发完成了,还是拿出来溜溜比较好,本篇是本 ...

  4. 基于 abp vNext 和 .NET Core 开发博客项目 - Blazor 实战系列(九)

    基于 abp vNext 和 .NET Core 开发博客项目 - Blazor 实战系列(九) 转载于:https://github.com/Meowv/Blog 终于要接近尾声了,上一篇基本上将文 ...

  5. 基于 abp vNext 和 .NET Core 开发博客项目 - Blazor 实战系列(八)

    基于 abp vNext 和 .NET Core 开发博客项目 - Blazor 实战系列(八) 转载于:https://github.com/Meowv/Blog 上一篇完成了标签模块和友情链接模块 ...

  6. 基于 abp vNext 和 .NET Core 开发博客项目 - Blazor 实战系列(七)

    基于 abp vNext 和 .NET Core 开发博客项目 - Blazor 实战系列(七) 转载于:https://github.com/Meowv/Blog 上一篇完成了后台分类模块的所有功能 ...

  7. 基于 abp vNext 和 .NET Core 开发博客项目 - Blazor 实战系列(六)

    基于 abp vNext 和 .NET Core 开发博客项目 - Blazor 实战系列(六) 转载于:https://github.com/Meowv/Blog 上一篇完成了博客文章详情页面的数据 ...

  8. 基于 abp vNext 和 .NET Core 开发博客项目 - Blazor 实战系列(五)

    基于 abp vNext 和 .NET Core 开发博客项目 - Blazor 实战系列(五) 转载于:https://github.com/Meowv/Blog 上一篇完成了分类标签友链的列表查询 ...

  9. 基于 abp vNext 和 .NET Core 开发博客项目 - Blazor 实战系列(二)

    基于 abp vNext 和 .NET Core 开发博客项目 - Blazor 实战系列(二) 转载于:https://github.com/Meowv/Blog 上一篇搭建了 Blazor 项目并 ...

最新文章

  1. Udacity机器人软件工程师课程笔记(三十二) - 卡尔曼滤波器 - 一维卡尔曼滤波器 - 多维卡尔曼滤波器 - 拓展卡尔曼滤波器(EKF)
  2. 2020“高教社”杯全国大学生数学建模竞赛——建模国赛优秀论文
  3. 怎么把页面按比例缩小_做PPT多图排版千万别套模板了,按这28种版式来,绝对靠谱!...
  4. 均匀化退火时间_热处理4把火:淬火、回火、正火、退火,都分清楚了么?
  5. Javascript设计模式之发布-订阅模式
  6. spring boot注解_Spring-boot(二)注解
  7. .net winform panel 不刷新_winform项目——仿QQ即时通讯程序04:登录界面补充
  8. 手把手教你搭建机器学习+深度学习AI模型
  9. 13.业务层的事务操作
  10. atitit ui引擎之道 游戏引擎之道.docx 1. 概念 2 1.1. (cocos,createjs,dom) 2 2. 游戏引擎的构成(图形引擎(渲染系统),控件部件系统,事件系统 ,布局
  11. matlab 8fsk,MFSK蒙特卡洛仿真与理论误码率的对比
  12. win7修复计算机有密码,win7系统恢复选项密码
  13. 改造 Firefox 浏览器——GitHub 热点速览 v.21.23
  14. Docker生态系统:常规组件简介
  15. 30张被厂商阉割掉的Andorid7.0原生2K壁纸,我们为你优选最优质的10张
  16. 6.1神经网络--python机器学习
  17. 8.8 Web前端-小米商城项目实战
  18. Vue动态绑定class
  19. “碳”零排放是什么意思
  20. 【Learning Notes】CTC 原理及实现

热门文章

  1. Exchange中的数据库文件
  2. 禁止访问Apache目录
  3. VMware虚拟机VMware Authorization Service不能启动问题
  4. 【慢慢学算法】:查找第k小数
  5. 在Windows 7或Vista(或Windows 8.x,Sorta)上禁用Aero
  6. php旧版本windows_Windows的旧版本中如何进行多任务处理?
  7. Comcast以纯文本泄露客户Wi-Fi登录信息,立即更改密码
  8. 如何在Xbox One或PlayStation 4上为Skyrim特别版安装Mods
  9. 汉克尔变换matlab,HankelTransform
  10. mysql操作手册我_MySQL使用指南一