在开发完成一个好用的轮子就想将这个轮子发布到 nuget 让其他小伙伴可以来使用,但是 nuget.org 的登陆速度太慢,本文介绍一个命令行发布的方法,通过命令行发布的方法可以配合 Jenkins 自动打包


本文不会告诉大家如何去制作一个 nuget 库,只是在大家已经打出来 nuget 之后如何将这个轮子发布到 nuget ,本文用 nuget.org 作为例子,如果是自己搭建的,那么我也不知道自己搭建的会做成什么

首先打开 nuget.org 进行登陆,就是因为登陆 nuget 实在太慢我才去学如何通过命令行的方法发布

登陆之后,可以在右上角看到自己的账号,点击一下可以看到下面界面,这时点击一个 Api key 因为在使用命令行发布的时候需要一个秘钥,通过上面的界面就可以创建秘钥

在 Api Key 界面可以看到 Create 这个按钮,没错,这是一个按钮

点击一下就可以创建一个 key 了,创建一个 key 可以给 key 不同的功能,具体请看下图

如果指定了可以修改版本的权限,可以设置有哪些轮子的版本号可以被这个 key 修改,请看下面

设置完成就可以点击 Create 了

创建之后需要复制这个 Key 的 序列,先将这个序列保存到文本,在之后会用到。注意,一个key只能在网页没关闭之前复制一次

本文使用的是设置了 MVVM 框架的三个轮子的更新权限,所以下面的例子就是更新一个轮子的版本

我通过 VisualStudio 编译出来不同的轮子的 nuget 请看图

然后我可以在地址栏输入 cmd 启动命令行,为什么需要在地址栏输入?原因是这样输入打开 cmd 就可以自动设置工作路径,请看下图,通过 cmd 打开的就是我需要的工作路径

这时可以通过下面的命令发布对应的 nuget 到 nuget.org 网站

dotnet nuget push xx.nupkg -k 刚才复制的key -s https://api.nuget.org/v3/index.json

如我发布 lindexi.MVVM.Framework.2.2.5.symbols.nupkg 可以使用下面代码

dotnet nuget push lindexi.MVVM.Framework.2.2.5.symbols.nupkg -k oy2fvszjpukd6lm2vaqav5gcx6xcfuaencyx5x2ppab42e -s https://api.nuget.org/v3/index.json

可以看到输出

info : Pushing lindexi.MVVM.Framework.2.2.5.symbols.nupkg to 'https://www.nuget.org/api/v2/package'...
info : PUT https://www.nuget.org/api/v2/package/
info : Created https://www.nuget.org/api/v2/package/ 12720ms
info : Your package was pushed.

现在就成功发布了,那么用命令行除了减少在 nuget.org 登陆的时间之外,还可以用它做自动上传

可以通过这个方式在每次创建的时候只在文件夹保存一个 nuget 这样就可以通过命令行批处理的方式发布到 nuget 因为刚才的命令是可以支持任意的名字

上传某个文件夹内的 nuget 有一个要求就是这个文件夹内只有一个 nuget 不能有多个,而且上传的 nuget 的版本是不存在的,也就是不能多次上传相同版本号的 nuget 如果符合上面的条件就可以通过批处理的方式上传

在相同的文件夹创建一个 nuget.bat 文件,在这个文件输入下面代码

dotnet nuget push *.nupkg -k 刚才复制的key -s https://api.nuget.org/v3/index.json

这样在编译之后调用这个批处理就可以将文件夹内的 nuget 上传,通过这个方式和 Jenkins 自动打包就可以自动发布 nuget 而且这个方式可以防止用户自己上传过程因为编译了不对的分支让其他用户以为自己写出坑

How to Publish a NuGet Package

dotnet nuget push command - .NET Core CLI

点击查看课件

我搭建了自己的博客 https://lindexi.gitee.io/ 欢迎大家访问,里面有很多新的博客。只有在我看到博客写成熟之后才会放在csdn或博客园,但是一旦发布了就不再更新

如果在博客看到有任何不懂的,欢迎交流,我搭建了 dotnet 职业技术学院 欢迎大家加入


本作品采用知识共享署名-非商业性使用-相同方式共享 4.0 国际许可协议进行许可。欢迎转载、使用、重新发布,但务必保留文章署名林德熙(包含链接:http://blog.csdn.net/lindexi_gd ),不得用于商业目的,基于本文修改后的作品务必以相同的许可发布。如有任何疑问,请与我联系

Nuget 通过 dotnet 命令行发布的更多相关文章

  1. 通过dotnet命令行设置asp.net core服务的启动地址

    需求: 通过dotnet命令行启动asp.net core 服务时,自定义监听端口. 方法: 在program.cs中增加命令行参数配置: WebHost.CreateDefaultBuilder(a ...

  2. 【ASP.NET】利用Nuget打包package——命令行方式

    通过命令行 官方说明,可以参考:creating-and-publishing-a-package 如果你希望可以使用图形界面的方式,请参考这篇文章   打包dll   使用如下的命令: nuget  ...

  3. 用命令行发布android程序

    在开发android程序的过程中,我们使用ant debug和ant installd这两个命令就够了,不涉及到APK的签名. 但是在正式发布我们的Android程序时,需要对APK签名.ant re ...

  4. 2018-10-19-Nuget-通过-dotnet-命令行发布

    title author date CreateTime categories Nuget 通过 dotnet 命令行发布 lindexi 2018-10-19 09:15:53 +0800 2018 ...

  5. dotnet 使用 System.CommandLine 写命令行程序

    在写命令行程序的时候,会遇到命令行解析的问题,以及参数的使用和规范化等坑.现在社区开源了命令行项目,可以帮助小伙伴快速开发命令行程序,支持自动的命令行解析和规范的参数 我写过一篇关于命令行解析的博客C ...

  6. dotnet core 命令行使用web deploy 部署项目到远程IIS

    众所周知dotnet cli可以用来编译和生成发布.net core,其实dotnet publish 还能进行WebDeploy.先解释一下使用场景一般是用于持续部署 dotnet publish进 ...

  7. NuGet命令行工具和可视化工具

    Nuget出了命令行工具之外,还有一个可视化工具,下载地址如下: 命令行(推荐官网下载,有中文提示!):https://dist.nuget.org/index.html 可视化(简单.方便.易用): ...

  8. .NET Core系列 : 1、.NET Core 环境搭建和命令行CLI入门

    2016年6月27日.NET Core & ASP.NET Core 1.0在Redhat峰会上正式发布,社区里涌现了很多文章,我也计划写个系列文章,原因是.NET Core的入门门槛相当高, ...

  9. NET Core 环境搭建和命令行CLI入门

    NET Core 环境搭建和命令行CLI入门 2016年6月27日.NET Core & ASP.NET Core 1.0在Redhat峰会上正式发布,社区里涌现了很多文章,我也计划写个系列文 ...

随机推荐

  1. 使用mpvue开发github小程序总结

    前言 最近有点闲,想起关注已久的mpvue写小程序,所以稍微肝了半个多月写了个github版的微信小程序,已上线.现在总结一下遇到的坑. 扫码体验. 项目地址.https://github.com/c ...

  2. vue中is的作用和用法

    回顾vue官方文档的过程中发现了is这个特性,虽然以我的写代码风格实在用不上,不过还是记录一下这个知识点 is的作用 <ul> <li></li> <li&g ...

  3. jQuuery Mobile 移动端开发框架

    jQuery Mobile 是创建移动 web 应用程序的框架. jQuery Mobile 适用于所有流行的智能手机和平板电脑. jQuery Mobile 使用 HTML5 和 CSS3 通过尽可 ...

  4. 洛谷 P1016 旅行家的预算 模拟+贪心

    目录 题面 题目链接 题目描述 输入输出格式 输入格式 输出格式 输入输出样例 输入样例 输出样例 说明 思路 AC代码 总结 题面 题目链接 P1016 旅行家的预算 题目描述 一个旅行家想驾驶汽车 ...

  5. 单行中文字和图片的相关height和line-height特性

    这几天在做仿京东的产品页,发现在制作过程中的一些问题,需要好好研究下. 需要实现的效果如上图所示: 在写CSS样式的时候,对于我的关于竖线的做法是: 设置高度为14,border样式,但导致了一个问题 ...

  6. R语言与显著性检验学习笔记

    R语言与显著性检验学习笔记 一.何为显著性检验 显著性检验的思想十分的简单,就是认为小概率事件不可能发生.虽然概率论中我们一直强调小概率事件必然发生,但显著性检验还是相信了小概率事件在我做的这一次检验 ...

  7. laravel 分页带参数

    {{$data->appends(request()->except(['page']))->links()}}

  8. 聊聊jdk http的HeaderFilter

    序 本文主要研究一下jdk http的HeaderFilter. FilterFactory java.net.http/jdk/internal/net/http/FilterFactory.jav ...

  9. Liferay OSGi注解(Annotation) - 使用手册(译文)

    mark过来好好用 上Neil的博客地址Liferay OSGi注解(Annotation) - 使用手册(译文) @Component是注入服务 @Reference是获取服务(在Liferay框架 ...

  10. 2019-9-2-win10-uwp-右击浮出窗在点击位置

    title author date CreateTime categories win10 uwp 右击浮出窗在点击位置 lindexi 2019-09-02 12:57:38 +0800 2018- ...