在开发完成一个好用的轮子就想将这个轮子发布到 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. Openck_Swift源代码分析——添加、删除设备时算法详细的实现过程

    1 初始加入设备后.上传Object的详细流程  前几篇博客中,我们讲到环的基本原理即详细的实现过程,加入我们在初始创建Ring是执行例如以下几条命令: •swift-ring-builder obj ...

  2. python ndarray相关操作:拼接

  3. POJ1655 Balancing Art

    Balancing Act Time Limit: 1000MS   Memory Limit: 65536K Total Submissions: 13865   Accepted: 5880 De ...

  4. Leetcode696.Count Binary Substrings计算二进制字串

    给定一个字符串 s,计算具有相同数量0和1的非空(连续)子字符串的数量,并且这些子字符串中的所有0和所有1都是组合在一起的. 重复出现的子串要计算它们出现的次数. 示例 1 : 输入: "0 ...

  5. 【水滴石穿】react-native-aze

    说个题外话,早上打开电脑的时候,电脑变成彩色的了,锅是我曾经安装的一个chrome扩展,没有经过我的同意开启了 (也许是昨天迷迷糊糊开启了) 上午运行项目都不成功,还以为被黑客攻击了---然后下午就排 ...

  6. scala实现定时任务的方法

    /** * ScheduledExecutorService是从Java SE5的java.util.concurrent里,做为并发工具类被引进的,这是最理想的定时任务实现方式. * 它有以下好处: ...

  7. KNN最近邻算法

    算法概述 K最近邻(K-Nearest Neighbor,KNN)算法,是著名的模式识别统计学方法,在机器学习分类算法中占有相当大的地位.它是一个理论上比较成熟的方法.既是最简单的机器学习算法之一,也 ...

  8. 关于android SDK安装Failed to fetch URL http://dl-ssl.google.com/android/repository/addons_list-1.xml出错

          最近SDK出问题了,然后在google下载了一个android-sdk-windows.rar,然后点击SDK Manager,结果一直不能刷新API Level,然后就开始在网上找了好多 ...

  9. gitlab 添加本地项目

    1.安装git    https://git-scm.com/downloads 2.新建工程 3.创建密钥 a.桌面右键 b.cd ~/.ssh/ 如果提示 “ No such file or di ...

  10. Android手机控制电脑撸出HelloWorld

    最近在开发一个远程办公的软件. 昨天在手机调通,并且成功通过手机打开电脑上的Eclipse撸出来一个HelloWorld. 也许不久的将来, 下班后,拿着手机在家写代码了.工作时间直接变成24/24 ...