前提:

  • 准备好要发布的包
  • 选择一个打包工具,可以是dotnet CLI、nuget.exe CLI、MSBuild

  • 准备好Nuget官方API Key

自述文件

  先必须添加Readme.md到项目中(包含在项目中),双击项目文件,添加README.md(注意路径),并制定文件地址:

--
javascript
typescript
bash
sql
json
html
css
c
cpp
java
ruby
python
go
rust
markdown

<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
//...
<PackageReadmeFile>README.md</PackageReadmeFile>
//...
</PropertyGroup> <ItemGroup>
//...
<None Include="README.md" Pack="true" PackagePath=""/>
//...
</ItemGroup>
</Project>

设置属性

打包工具这里使用的dotnet工具,包的表述来源于项目proj项目的属性,所以首先得设置属性,以下是官方示例

  • PackageId(包标识符)必须跨 nuget.org 和承载包的任何其他目标是唯一的。 如果未指定值,则命令使用 .AssemblyName
  • Version,窗体 Major.Minor.Patch[-Suffix] 中特定的版本号,其中 -Suffix 标识预发布版本。 如果未指定,默认值为 1.0.0
  • Authors 是包的作者。 如果未指定,默认值为 AssemblyName
  • Company 是公司信息。 如果未指定,则默认值为 Authors
  • Product 是产品信息。 如果未指定,默认值为 AssemblyName
  • ....
--
javascript
typescript
bash
sql
json
html
css
c
cpp
java
ruby
python
go
rust
markdown

<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
<TargetFramework>netstandard2.0</TargetFramework>
<PackageId>UniqueID</PackageId>
<Version>1.0.0</Version>
<Authors>Author Name</Authors>
<Company>Company Name</Company>
<Product>Product Name</Product>
</PropertyGroup>
</Project>

打包

  要生成 NuGet 包或 .nupkg 文件,请从项目文件夹运行 dotnet pack命令,该命令还会自动生成项目

dotnet pack

  若要在运行 dotnet build 时自动运行 dotnet pack,请将以下行添加到 <PropertyGroup> 中的项目文件内:

<GeneratePackageOnBuild>true</GeneratePackageOnBuild>

发布

使用命令dotnet nuget push可将打包好的.nupkg文件推送到Nuget,可将如下命令写入一个.ps1文件用powershell执行,key是nuget的API Key

dotnet nuget push [<ROOT>] [-d|--disable-buffering] [--force-english-output]
[--interactive] [-k|--api-key <API_KEY>] [-n|--no-symbols]
[--no-service-endpoint] [-s|--source <SOURCE>] [--skip-duplicate]
[-sk|--symbol-api-key <API_KEY>] [-ss|--symbol-source <SOURCE>]
[-t|--timeout <TIMEOUT>] dotnet nuget push -h|--help
--
javascript
typescript
bash
sql
json
html
css
c
cpp
java
ruby
python
go
rust
markdown

Write-host "PSScriptRoot
dotnet build
dotnet pack -o ./pack
set-location ./pack
dotnet nuget push .nupkg -k oy2xxxxxxxxxxaxxxxxxxxxxqklnlbm -s https://www.nuget.org/
remove-item ./.nupkg -Recurse

参考

https://learn.microsoft.com/zh-cn/nuget/create-packages/creating-a-package-dotnet-cli

dotnet CLI推送Nuget的更多相关文章

  1. 使用 Cake 推送 NuGet 包到 AzureDevops 的 Artifacts 上

    前言 大家好,我最近在想如何提交代码的时候自动的打包 NuGet 然后发布到 AzureDevOps 中的 Artifacts,在这个过程中踩了很多坑,也走了很多弯路,所以这次篇文章就是将我探索的结果 ...

  2. Github自动打包并推送Nuget版本

    如何将自己的类库,自动打包并自动发布到Nuget? 1. 项目csproject属性修改 新建一个项目GitToNugetPackageTest 不用添加任何类,我们修改csproject属性. 替换 ...

  3. WebSocket与消息推送

    B/S结构的软件项目中有时客户端需要实时的获得服务器消息,但默认HTTP协议只支持请求响应模式,这样做可以简化Web服务器,减少服务器的负担,加快响应速度,因为服务器不需要与客户端长时间建立一个通信链 ...

  4. HTML5 学习总结(五)——WebSocket与消息推送

    B/S结构的软件项目中有时客户端需要实时的获得服务器消息,但默认HTTP协议只支持请求响应模式,这样做可以简化Web服务器,减少服务器的负担,加快响应速度,因为服务器不需要与客户端长时间建立一个通信链 ...

  5. HTML5 学习笔记(五)——WebSocket与消息推送

    B/S结构的软件项目中有时客户端需要实时的获得服务器消息,但默认HTTP协议只支持请求响应模式,这样做可以简化Web服务器,减少服务器的负担,加快响应速度,因为服务器不需要与客户端长时间建立一个通信链 ...

  6. 【WebSocket】WebSocket消息推送

    准备使用WebSocket实现Java与Vue或者安卓间的实时通信,实现私密聊天.群聊.查询下资料备用. WebSocket客户端 websocket允许通过JavaScript建立与远程服务器的连接 ...

  7. 使用dotnet Cli向nuget发布包

    长话短说, 今天分享如何在nuget.org创建并发布.NET Standard package. 前置 安装勾选.NET Core开发套件的Visual Studio; 安装dotnet Cli 从 ...

  8. dotnet 使用 Qpush 快速从电脑到手机推送文字

    在手机打字总不是方便,于是就有了 Qpush 这个工具,通过这个工具可以快速从电脑到手机推送文字. 但是这个工具没有找到客户端,于是我就给他写了一个库,通过这个库可以快速进行开发 先介绍QPush 快 ...

  9. 使用 dotnet cli 命令上传 nuget 程序包

    前言 前面写了一篇文章介绍了如何将自己的程序集打包成nuget package并上传到nuget.org,传送门.全部是通过网页端来进行操作的,现在介绍一种比较方便快捷的方法就是用dotnet cli ...

  10. 使用 dotnet CLI 来打包和发布 .NET Core nuget package

    原文链接:使用 dotnet CLI 来打包和发布 .NET Core nuget package 如何使用 visual studio 2015/2017 打包和发布 Nuget package, ...

随机推荐

  1. canvas(五)绘制文本

    1.绘制描边文本 说明:描边的属性是共用的,无论是绘制直线还是文字,所以有需要的话要单独设置描边颜色,相关语法如下 语法 说明 ctx.strokeStyle 设置描边的颜色(文本颜色) ctx.fo ...

  2. 《前端运维》一、Linux基础--08Shell其他及补充

    这一篇,我们来学习一些重要的命令,在工作中也会经常用到. 一.简单正则 要注意的是,有些命令不支持正则模式,比如fs.find等,有些是支持正则的,比如grep.awk.sed等.正则的语法和js中的 ...

  3. OS之《进程管理》

    进程同步 同步实际上是指:将多个进程,按照顺序,有序执行. 让进程有序进行的场景有很多.比如:一个进程依赖另外一个进程的计算结果:一个进程等待另外一个对临界资源的访问:还有像生产者消费者模型中的相互配 ...

  4. 那些年,我们一起追的 WLB

    2019年,那一年,我29岁. 那一年,"996是福报"的言论在网络上引发舆论轩然大波. 那一年,"大小周"."996"."007 ...

  5. SDK连接节点失败排查思路

    https://fisco-bcos-documentation.readthedocs.io/zh_CN/latest/docs/faq/connect.html Important: 前置说明 1 ...

  6. Spring Boot 2.4 中文

    Spring Boot 2.4 中文 https://runebook.dev/zh-CN/docs/spring_boot/spring-boot-features

  7. ssh远程执行命令方法和Shell脚本实例

    写这篇博客之前,我google了一堆相关文章,大都是说修改/etc/sudoers,然后NOPASSWD:指定的cmd,但是真心不管用,没有远程虚拟终端这个方法就是浮云,ubuntu10.04 ser ...

  8. Qt自定义控件大全文章导航

    文章 链接 Qt编写自定义控件1-汽车仪表盘 https://qtchina.blog.csdn.net/article/details/89407746 Qt编写自定义控件2-进度条标尺 https ...

  9. 用 Ingram 和 masscan 来扫描全网存在漏洞的camera

    前言 大学的时候也写过和Ingram差不多的工具,不过那时候已经玩到没有兴致了,代码已不知道哪里去.没想到在Github看到了这个工具,实现思路和我的几乎一样,互联网就是这么神奇. Ingram的Gi ...

  10. nginx 简单实践:静态资源部署、URL 重写【nginx 实践系列之一】

    〇.前言 本文为 nginx 简单实践系列文章之一,主要简单实践了两个内容:静态资源部署.重写,仅供参考. 关于 Nginx 基础,以及安装和配置详解,可以参考博主过往文章: https://www. ...