长话短说, 今天分享如何在nuget.org创建并发布.NET Standard package。

前置

  1. 安装勾选.NET Core开发套件的Visual Studio; 安装dotnet Cli

从VS2017开始,dotnet Cli已经自动在.NET开发套件中被安装;使用SDK-style format(SDK属性)的.NET Standard项目需要dotnet Cli;nuget.exe Cli用于非SDK样式的项目(通常是.NET Framework)。

  1. 创建.NET Standard库项目

配置package属性

  1. 项目右键,选择属性--->打包
    打包面板只会出现在VSSDK-style项目,典型如.NET Standard或者.NET Core库项目。

构建时生成Nuget包:顾名思义,除打包命令,构建时也会自动生成nuget包;
标记:帮助其他人定位你的包,了解包的能力。

  1. 给package设定一个唯一id,并填写其他属性。注意这个package id需要在nuget.org全站唯一,我们建议你使用包前缀名来避免重复,比如:${UserName}.PackageName

打包

  1. 将配置改为Release

  2. 右键项目--> 打包

如果你没有看到打包命令,你的项目可能不是SDk-style风格的项目,这是要使用 nuget.exe Cli(或者迁移到SDK-style项目,再使用dotnet Cli)。

  1. Visual Studio构建项目并创建.nupkg文件,插看输出窗体,获取包文件的路径。

发布包

有了.nupkg文件,你可以从nuget.org获取一个API key(这个Key标记了你这个nuget账户),结合dotnet cli发布包。

获取API Key

  1. 登陆nuget.org账户

  2. 点击右上角你的账户名字,选择API keys

  3. 创建---> 选择范围--> Push, 在Glob pattern填入*

  4. 一旦生成key,请尽早Copy并保存key,这个key将在dotnet Cli命令中用到

尽快保存你的key,如果你再次返回这个页面,你需要重新生成key并Copy.

发布包

转到包含.nupkg文件的目录,执行下面命令

dotnet nuget push AppLogger.1.0.0.nupkg -k qz2jga8pl3dvn2akksyquwcs9ygggg4exypy3bhxy6w6x6 -s https://api.nuget.org/v3/index.json

显示如下结果:

info : Pushing AppLogger.1.0.0.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/ 12620ms
info : Your package was pushed.

推送命令中的错误通常表明存在问题 , 如:

  • 您可能忘记了更新项目中的版本号,而尝试发布已经存在的软件包。

  • 您尝试使用主机上已存在的标识符发布程序包时,也会看到错误:名称“ AppLogger”已经存在。

Response status code does not indicate success: 403 (The specified API key is invalid,
has expired, or does not have permission to access the specified package.).

如果您使用的是有效 API key,则此消息表示命名冲突,从以上错误的“权限”部分无法完全看出这一点。更改程序包标识符,重建项目,重新创建.nupkg文件,然后重试push命令。

其他一些包管理的操作,请在nuget包管理中心倒腾。

关注我们
更多技术干货及#副业刚需#

请关注Dotnet Plus公众号

“阅读全文,体验更佳”

使用dotnet Cli向nuget发布包相关推荐

  1. 小匕首-dotnet cli使用nuget指令

    文章目录 一.指令清单 二.获取配置源 三.启用/禁用配置源 一.指令清单 输入指令dotnet nuget -h >dotnet nuget -h NuGet Command Line 6.0 ...

  2. dotnet cli 5.0 新特性——dotnet tool search

    dotnet cli 5.0 新特性--dotnet tool search Intro .NET 5.0 SDK 的发布,给 dotnet cli 引入了一个新的特性,dotnet tool sea ...

  3. 使用 DotNet CLI 创建自定义的 WPF 项目模板

    描述 当我们安装完 DotNetCore 3.0 版本的 SDK 后,我们就可以创建基于 DotNetCore 的 WPF 项目模板,通过如下 CLI 可以方便快捷的创建并运行我们的项目: Copy ...

  4. java撤销删除_[Java教程]利用npm安装/删除/发布/更新/撤销发布包

    [Java教程]利用npm安装/删除/发布/更新/撤销发布包 0 2017-06-10 00:00:32 一.什么是npm? npm是javascript的包管理工具,是前端模块化下的一个标志性产物 ...

  5. python 发布包_如何将自己的Python包发布到PyPI

    以前写过一篇类似的文章: 如何打包自己的项目并且发布到pypi上,不过由于PyPI进行了一些更新,因此旧方法不大适用了.趁端午有时间,想把haipproxy的客户端发布到PyPI,以改进用户体验,因此 ...

  6. npm 发布包填坑指南

    2019独角兽企业重金招聘Python工程师标准>>> 最近使用 Npm 发布包时遇到了一些坑,集中记录下以便后续查看. 01. 就个人经验来说,我们写的包往哪儿发布,无非下面三个地 ...

  7. 在Linux上编译dotnet cli的源代码生成.NET Core SDK的安装包

    .NET 的开源,有了更多的DIY乐趣.这篇博文记录一下在新安装的 Linux Ubuntu 14.04 上通过自己动手编译 dotnet cli 的源代码生成 .net core sdk 的 deb ...

  8. 如何用 Bash 创建一个二进制发布包

    linux下安装JDK的时候,Sun公司为JDK6的linux版本提供了一个shell的安装包,用起来特别的好用,基本上和在Windows下安装软件没什么两样,shell文件执行之后,几乎一切都系都设 ...

  9. 记录一下向npmjs上发布包遇到的坑

    先说一下如何向npmjs上发布包 首先要现在npmjs上注册一个账号,需要使用用户名.密码.邮箱 在自己的项目中将要发布的包封装好 在这里先判断一下是不是使用在使用npm的源,如果不是,要切换成npm ...

最新文章

  1. oc75--不可变字典NSDictionary
  2. 单例模式可以分为懒汉式和饿汉式:     懒汉式单例模式:在类加载时不初始化。     饿汉式单例模式:在类加载时就完成了初始化,所以类加载比较慢,但获取对象的速度快。
  3. Java黑皮书课后题第6章:*6.38(生成随机字符)使用程序清单6-10 RandomCharacter中的方法,打印100个大写字母及100个一位数字,每行打印10个
  4. JS splice()方法
  5. 洛谷 4364 [九省联考2018]IIIDX
  6. Windows Azure系列公开课 - 第二课:为什么选择Windows Azure(下)
  7. 什么情况下使用 if()后面的else可以省略不写
  8. 论文笔记_S2D.44_自监督的从稀疏到稠密:用激光雷达和单目摄像机进行自监督深度补全
  9. 从客户变成员工在租赁公司打工--我成为程序员所经历的(三)
  10. C# 如何理解如下泛型约束 class AT:where T:class{}
  11. 1.45亿元!甲骨文中标中国邮政储蓄银行数据库项目
  12. MT4指标三线KDJ指标下载
  13. 三角形箭头向右的_向右三角形特殊符号
  14. flash CS6 导入音频不成功的问题
  15. GridWorld实训总结报告
  16. Linux : SSHD服务
  17. 霏霏暮雨 eclipse+HBASE开发环境搭建(已实践
  18. 基于ASRT的开源实时语音转文本
  19. 设计模式——简单工厂模式之女娲造人
  20. 哈工大2019年春算法设计与分析期末复习

热门文章

  1. UVa 10061 How many zero's and how many digits?
  2. win7 部署tomcat
  3. Mac OSX使用VMware Fusion安装windows虚拟机教程
  4. hey 安装_如何在助理扬声器上调整“ Hey Google”的灵敏度
  5. 如何在Android TV上自定义推荐行
  6. 如何重新打开Windows防火墙提示?
  7. imessage_如何在iPhone和iPad上的iMessage组中提及某人
  8. linux导出硬件信息,Linux 上生成硬件信息与配置报告: Sysreport
  9. 云计算基础知识:CPU虚拟化
  10. shell脚本中向hive动态分区插入数据