一个技术汪的开源梦 —— 目录

微软的 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 包制作 & 发布的更多相关文章

  1. 一个技术汪的开源梦 —— 基于 .Net Core 的公共组件之 Http 请求客户端

    一个技术汪的开源梦 —— 目录 想必大家在项目开发的时候应该都在程序中调用过自己内部的接口或者使用过第三方提供的接口,咱今天不讨论 REST ,最常用的请求应该就是 GET 和 POST 了,那下面开 ...

  2. 一个技术汪的开源梦 —— 基于 .Net Core 的公共组件之序列化

    一个技术汪的开源梦 —— 目录 想必大家在项目中都接触过 JSON 或者 XML 吧,为了将对象在网络上传输或者将其持久化必须将其序列化为一个字符串然后进行后续操作.常见的就是将其序列化成 JSON ...

  3. 一个技术汪的开源梦 —— 基于 .Net Core 的公共组件之目录结构

    一个技术汪的开源梦 —— 目录 这篇文章是开源公共组件的开篇那就先说说项目的 Github 目录结构和 .Net Core 的项目结构. 1. GitHub 目录结构和相关文件 - src 源码项目目 ...

  4. 一个技术汪的开源梦 —— 微信开发工具包(WeixinSDK)

    由于春节的关系 WeixinSDK 这个开源项目的进展比预期推迟了大约一个月的时间,值得高兴的是到目前为止该项目的重要模块已经开发完毕.  - 关于项目 该项目的背景是现在微信公众号.微信服务号乃至微 ...

  5. 一个技术汪的开源梦 —— 公共组件缓存之分布式缓存 Redis 实现篇

    Redis 安装 & 配置 本测试环境将在 CentOS 7 x64 上安装最新版本的 Redis. 1. 运行以下命令安装 Redis $ wget http://download.redi ...

  6. 基于.NET Core开发的个人博客发布至CentOS小计

    早些时候,使用 .NET Framework 开发网站,只能部署在 Windows 服务器上面,近两年 .NET Core 如火如荼,乘此机会赶紧上车,最近将自己利用 .NET Core 开发的个人博 ...

  7. 统一流控服务开源:基于.Net Core的流控服务

    先前有一篇博文,梳理了流控服务的场景.业界做法和常用算法 统一流控服务开源-1:场景&业界做法&算法篇 最近完成了流控服务的开发,并在生产系统进行了大半年的验证,稳定可靠.今天整理一下 ...

  8. 从一次解决Nancy参数绑定“bug”开始发布自己的第一个nuget包(上篇)

    起因 最近,同事跟我说,他们负责的一个Api程序出现了一些很奇怪的事情.这个Api是为环保局做的一个扬尘质控大屏提供数据的,底层是基于Nancy做的.因为发现有些接口的数据出现异常,他就去调试了一下, ...

  9. 开源一个自己造的轮子:基于图的任务流引擎GraphScheduleEngine

    GraphScheduleEngine是什么: GraphScheduleEngine是一个基于DAG图的任务流引擎,不同语言编写.运行于不同机器上的模块.程序,均可以通过订阅GraphSchedul ...

随机推荐

  1. python自动化测试(2)-自动化基本技术原理

    python自动化测试(2) 自动化基本技术原理 1   概述 在之前的文章里面提到过:做自动化的首要本领就是要会 透过现象看本质 ,落实到实际的IT工作中就是 透过界面看数据. 掌握上面的这样的本领 ...

  2. Git与Repo入门

    版本控制 版本控制是什么已不用在说了,就是记录我们对文件.目录或工程等的修改历史,方便查看更改历史,备份以便恢复以前的版本,多人协作... 一.原始版本控制 最原始的版本控制是纯手工的版本控制:修改文 ...

  3. CI Weekly #10 | 2017 DevOps 趋势预测

    2016 年的最后几个工作日,我们对 flow.ci Android & iOS 项目做了一些优化与修复: iOS 镜像 cocoapods 版本更新: fir iOS上传插件时间问题修复: ...

  4. IE的F12开发人员工具不显示问题

    按下F12之后,开发人员工具在桌面上看不到,但是任务栏里有显示.将鼠标放在任务栏的开发人员工具上,出现一片透明的区域,选中之后却出不来.将鼠标移动到开发人员工具的缩略图上,右键-最大化,工具就全屏出现 ...

  5. webpack+react+redux+es6开发模式

    一.预备知识 node, npm, react, redux, es6, webpack 二.学习资源 ECMAScript 6入门 React和Redux的连接react-redux Redux 入 ...

  6. 用scikit-learn学习DBSCAN聚类

    在DBSCAN密度聚类算法中,我们对DBSCAN聚类算法的原理做了总结,本文就对如何用scikit-learn来学习DBSCAN聚类做一个总结,重点讲述参数的意义和需要调参的参数. 1. scikit ...

  7. Java 经典入门(一)

    一.什么是 Java 技术?为何需要 Java? Java 是由 Sun Microsystems 在 1995 年首先发布的编程语言和计算平台.有许多应用程序和 Web 站点只有在安装 Java 后 ...

  8. 微信小程序体验(1):携程酒店机票火车票

    在 12 月 28 日微信公开课上,张小龙对微信小程序的形态进行了阐释,小程序有四个特定:无需安装.触手可及.用完即走.无需卸载. 由于携程这种订酒店.火车票和机票等工具性质非常强的服务,非常符合张小 ...

  9. 浅谈Web自适应

    前言 随着移动设备的普及,移动web在前端工程师们的工作中占有越来越重要的位置.移动设备更新速度频繁,手机厂商繁多,导致的问题是每一台机器的屏幕宽度和分辨率不一样.这给我们在编写前端界面时增加了困难, ...

  10. XAMARIN ANDROID 二维码扫描示例

    现在二维码的应用越来越普及,二维码扫描也成为手机应用程序的必备功能了.本文将基于 Xamarin.Android 平台使用 ZXing.Net.Mobile  做一个简单的 Android 条码扫描示 ...