一个技术汪的开源梦 —— 基于 .Net Core 的组件 Nuget 包制作 & 发布
微软的 ASP.Net Core 强化了 Nuget 的使用,所有的 .Net Core 组件均有 Nuget 管理,所以有必要探讨一下 .Net Core 组件制作 Nuget 包和发布。
之前 .Net Framework 程序集打包 Nuget 有以下方法:
1. 使用命令 nuget pack 详见博客园的一篇博文 《用命令行工具创建 Nuget 程序包》;
2. 使用 NuGet Package Explorer;
3. vs 插件 NuBuild Project System。
这其中第 3 种方法是最好用的,可以直接在 vs 中制作 Nuget 包,然后用方法 2 校验生成的 Nuget 包对不对或者微调发布,亦可以用 nuget 命令进行包的推送。
下面说 .Net Core 组件的打包
微软既然所有的 .Net Core 组件均有 Nuget 去管理,那它肯定会出一个打包工具或者命令,没错下面就开始说一下 dotnet pack 命令。
想必大家之前肯定用过 dotnet 相关的命令,那今天说一下它的打包命令 dotnet pack 这里的打包就是打成 nuget 包。
包生成
执行命令 dotnet pack --help 看一下有啥子参数。
-h 不用说了就是查看帮助;
-o 指定生成的nuget包要输出到那个目录下;
--no-build 打包时不要编译项目;
-b 项目编译时的临时输入目录;
-c 配置使用 Debug 模式还是 Release 模式(默认为 Debug);
-version-suffix 如果 project.json 中的项目版本以 * 结尾,这个参数可以指定参数将 * 替换掉;
-s 指定是否仅供内部 nuget 使用。
以下是简单示例:
1. project.json 文件目录下执行命令: dotnet pack -c Release -o Nugets
2. 非 project.json 文件目录下执行命令:
dotnet pack -c Release -o Nugets src\Wlitsoft.Framework.Common.Abstractions\project.json
打包后会生成两个文件
Wlitsoft.Framework.Common.Abstractions.0.1.1-Beta.nupkg
Wlitsoft.Framework.Common.Abstractions.0.1.1-Beta.symbols.nupkg
第一个文件是 Nuget 包文件,第二个是包括源码的 Nuget 包文件。
命名规则为:项目文件夹名称 + 版本号(project.json 内指定的 version),没有搞明白怎么修改默认的命名生成规则。
注意:版本号后缀带 - xxx 标示预发行版本。
包检查
包已经生成成功了那咱用 NuGet Package Explorer 打开看眼生成的对不对,当然亦可用压缩文件软件将 nupkg 文件打开查看 nuget 包的描述文件。
包上传
如果是开源项目的话,包可以上传到 Nuget 官方服务器,如果是公司内部私有项目的话那就上传到内部是私有 Nuget 服务器或者文件共享服务器中(Nuget 源支持文件共享源)。
1. 在 Nuget 官网上传。
2. 使用 Nuget 命令上传
该方法需要提交生成一个 key ,然后使用命令向 Nuget 服务器推送包。
校验上传结果
打开 vs 的 Nuget 查询看有没有上传的包。
最后热烈庆祝 Visual Studio 出 Mac 版本了,但有一个文件不支持 VS 2015 最新的 xproj 项目文件,只支持 csproj 。。。。
一个技术汪的开源梦 —— 基于 .Net Core 的组件 Nuget 包制作 & 发布的更多相关文章
- 一个技术汪的开源梦 —— 基于 .Net Core 的公共组件之 Http 请求客户端
一个技术汪的开源梦 —— 目录 想必大家在项目开发的时候应该都在程序中调用过自己内部的接口或者使用过第三方提供的接口,咱今天不讨论 REST ,最常用的请求应该就是 GET 和 POST 了,那下面开 ...
- 一个技术汪的开源梦 —— 基于 .Net Core 的公共组件之序列化
一个技术汪的开源梦 —— 目录 想必大家在项目中都接触过 JSON 或者 XML 吧,为了将对象在网络上传输或者将其持久化必须将其序列化为一个字符串然后进行后续操作.常见的就是将其序列化成 JSON ...
- 一个技术汪的开源梦 —— 基于 .Net Core 的公共组件之目录结构
一个技术汪的开源梦 —— 目录 这篇文章是开源公共组件的开篇那就先说说项目的 Github 目录结构和 .Net Core 的项目结构. 1. GitHub 目录结构和相关文件 - src 源码项目目 ...
- 一个技术汪的开源梦 —— 微信开发工具包(WeixinSDK)
由于春节的关系 WeixinSDK 这个开源项目的进展比预期推迟了大约一个月的时间,值得高兴的是到目前为止该项目的重要模块已经开发完毕. - 关于项目 该项目的背景是现在微信公众号.微信服务号乃至微 ...
- 一个技术汪的开源梦 —— 公共组件缓存之分布式缓存 Redis 实现篇
Redis 安装 & 配置 本测试环境将在 CentOS 7 x64 上安装最新版本的 Redis. 1. 运行以下命令安装 Redis $ wget http://download.redi ...
- 基于.NET Core开发的个人博客发布至CentOS小计
早些时候,使用 .NET Framework 开发网站,只能部署在 Windows 服务器上面,近两年 .NET Core 如火如荼,乘此机会赶紧上车,最近将自己利用 .NET Core 开发的个人博 ...
- 统一流控服务开源:基于.Net Core的流控服务
先前有一篇博文,梳理了流控服务的场景.业界做法和常用算法 统一流控服务开源-1:场景&业界做法&算法篇 最近完成了流控服务的开发,并在生产系统进行了大半年的验证,稳定可靠.今天整理一下 ...
- 从一次解决Nancy参数绑定“bug”开始发布自己的第一个nuget包(上篇)
起因 最近,同事跟我说,他们负责的一个Api程序出现了一些很奇怪的事情.这个Api是为环保局做的一个扬尘质控大屏提供数据的,底层是基于Nancy做的.因为发现有些接口的数据出现异常,他就去调试了一下, ...
- 开源一个自己造的轮子:基于图的任务流引擎GraphScheduleEngine
GraphScheduleEngine是什么: GraphScheduleEngine是一个基于DAG图的任务流引擎,不同语言编写.运行于不同机器上的模块.程序,均可以通过订阅GraphSchedul ...
随机推荐
- 旺财速啃H5框架之Bootstrap(五)
在上一篇<<旺财速啃H5框架之Bootstrap(四)>>做了基本的框架,<<旺财速啃H5框架之Bootstrap(二)>>篇里也大体认识了bootst ...
- 如何一步一步用DDD设计一个电商网站(三)—— 初涉核心域
一.前言 结合我们本次系列的第一篇博文中提到的上下文映射图(传送门:如何一步一步用DDD设计一个电商网站(一)—— 先理解核心概念),得知我们这个电商网站的核心域就是销售子域.因为电子商务是以信息网络 ...
- Javascript生成二维码(QR)
网络上已经有非常多的二维码编码和解码工具和代码,很多都是服务器端的,也就是说需要一台服务器才能提供二维码的生成.本着对服务器性能的考虑,这种小事情都让服务器去做,感觉对不住服务器,尤其是对于大流量的网 ...
- Dapper.Contrib:GetAsync<T> only supports an entity with a [Key] or an [ExplicitKey] property
异常处理:http://www.cnblogs.com/dunitian/p/4523006.html#dapper 原来Model是这样滴 修改后是这样滴 注意点:Model里面的Table和Key ...
- Python列表去重
标题有语病,其实是这样的: 假设有两个列表 : L1 = [1,2,3,4] ; L2 = [1,2,5,6] 然后去掉L1中包含的L2的元素 直接这样当然是不行的: def removeExists ...
- WebGIS项目中利用mysql控制点库进行千万条数据坐标转换时的分表分区优化方案
文章版权由作者李晓晖和博客园共有,若转载请于明显处标明出处:http://www.cnblogs.com/naaoveGIS/ 1. 背景 项目中有1000万条历史案卷,为某地方坐标系数据,我们的真实 ...
- [原]一个针对LVS的压力测试报告
LVS 测试报告 测试计划 基本功能测试 流量压力测试 响应时间测试 配置正确性测试 灾难恢复测试 测试点 基本功能测试 客户端IP地址正确性 RealServer 访问Internet测试(包括Ip ...
- 通过微信小程序看前端
前言 2016年9月22日凌晨,微信官方通过“微信公开课”公众号发布了关于微信小程序(微信应用号)的内测通知.整个朋友圈瞬间便像炸开了锅似的,各种揣测.介绍性文章在一夜里诞生.而真正收到内测邀请的公众 ...
- 【干货分享】流程DEMO-补打卡
流程名: 补打卡申请 业务描述: 当员工在该出勤的工作日出勤但漏打卡时,于一周内填写补打卡申请. 流程相关文件: 流程包.xml 流程说明: 直接导入流程包文件,即可使用本流程 表单: 流程: 图片 ...
- 【centos7常用技巧】RPM打包
一.RPM打包的目的 1.当目标机中不存在编译环境时,可以先在本地环境中编译打包,然后直接在目标机中用rpm -ivh *.rpm安装即可. 2.当需要在目标机中安装多个软件或者增加多个文件时,可以将 ...