使用dotnet Cli向nuget发布包

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

e12247cf19c8f3e5908b751dda1ceba2.png


前置


  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库项目。


9a3da2f920cb0b0ad5f5e4f1664d4dec.png


构建时生成Nuget包:顾名思义,除打包命令,构建时也会自动生成nuget包;

标记:帮助其他人定位你的包,了解包的能力。


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


打包


  1. 将配置改为Release


  1. 右键项目--> 打包


89788d0c7b974fb1e4c69a9d94a728aa.png


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


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


cf74bfc15a2df7ea61a0de873d26416f.png


发布包


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


获取API Key


  1. 登陆nuget.org账户


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


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


  1. 一旦生成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命令。

相关文章
|
Java Windows
几步轻松实现可执行jar包在windows上直接启动
几步轻松实现可执行jar包在windows上直接启动
2322 0
|
存储 安全 编译器
C# 11.0中的泛型属性:类型安全的新篇章
【1月更文挑战第23天】C# 11.0引入了泛型属性的概念,这一新特性为开发者提供了更高级别的类型安全性和灵活性。本文将详细探讨C# 11.0中泛型属性的工作原理、使用场景以及它们对现有编程模式的改进。通过深入了解泛型属性,开发者将能够编写更加健壮、可维护的代码,并充分利用C#语言的最新发展。
|
网络协议 Java Maven
基于Netty实现TCP通信
基于Netty实现TCP通信
221 0
|
监控 数据处理 索引
整合LlamaIndex与LangChain构建高级的查询处理系统
该文阐述了如何结合LlamaIndex和LangChain构建一个扩展性和定制性强的代理RAG应用。LlamaIndex擅长智能搜索,LangChain提供跨平台兼容性。代理RAG允许大型语言模型访问多个查询引擎,增强决策能力和多样化回答。文章通过示例代码展示了如何设置LLM、嵌入模型、LlamaIndex索引及查询引擎,并将它们转换为LangChain兼容的工具,实现高效、精准的问题解答。通过多代理协作,系统能处理复杂查询,提高答案质量和相关性。
860 0
|
11月前
|
机器学习/深度学习 人工智能 数据可视化
何恺明CV课程 | AI大咖说
麻省理工学院(MIT)电气工程与计算机科学系(EECS)副教授何恺明开设了两门精彩课程:“Advance in Computer Vision”和“Deep Generative Models”。何恺明是计算机视觉和深度学习领域的杰出科学家,曾提出深度残差网络(ResNet)等重要成果。这两门课程不仅涵盖了最新的研究前沿,还由何恺明亲自授课,内容涉及卷积神经网络、生成对抗网络、变分自编码器等,是学习计算机视觉和生成模型的宝贵资源。
418 8
|
NoSQL Java MongoDB
Java一分钟之-Spring Data MongoDB:MongoDB集成
【6月更文挑战第11天】Spring Data MongoDB简化Java应用与MongoDB集成,提供模板和Repository模型。本文介绍其基本用法、常见问题及解决策略。包括时间字段的UTC转换、异常处理和索引创建。通过添加相关依赖、配置MongoDB连接、定义Repository接口及使用示例,帮助开发者高效集成MongoDB到Spring Boot应用。注意避免时间差、异常处理不充分和忽视索引的问题。
351 0
|
11月前
|
网络协议 Unix Linux
精选2款C#/.NET开源且功能强大的网络通信框架
精选2款C#/.NET开源且功能强大的网络通信框架
373 0
|
安全 算法 Java
扩散模型在社交网络分析中的实际应用案例
扩散模型在社交网络分析中的实际应用案例
|
数据采集 分布式计算 DataWorks
DataWorks产品使用合集之odps如何使用正则表达式匹配字段的内容
DataWorks作为一站式的数据开发与治理平台,提供了从数据采集、清洗、开发、调度、服务化、质量监控到安全管理的全套解决方案,帮助企业构建高效、规范、安全的大数据处理体系。以下是对DataWorks产品使用合集的概述,涵盖数据处理的各个环节。
353 0
|
XML 存储 编译器
Protobuf 详解
Protobuf 详解