制作nuget包并上传到nuget.org

下面是一个详细的步骤指南,用于创建一个简单的 C# NuGet 包并将其发布到 NuGet.org。我们将创建一个简单的数学库作为示例。

步骤 1: 创建一个新的类库项目

首先,我们需要创建一个新的类库项目。这可以通过 Visual Studio 或者 .NET CLI 完成。

使用 .NET CLI:

打开命令行(例如 PowerShell、CMD 或 Terminal),然后运行以下命令:

dotnet new classlib --name SimpleMathLibrary
cd SimpleMathLibrary

这将创建一个名为 SimpleMathLibrary 的新类库项目,并将当前目录更改为项目目录。

使用 Visual Studio:
  1. 打开 Visual Studio,点击“创建新项目”。
  2. 在搜索框中搜索“类库”,选择“类库(C#)”选项,然后点击下一步。
  3. 输入项目名称“SimpleMathLibrary”,选择一个位置,然后点击“创建”。

步骤 2: 添加逻辑到类库

修改 Class1.cs 文件或者创建一个新的 C# 类文件来添加你的逻辑。以下是一个简单函数的示例,用于演示:

// Filename: MathOperations.cs
using System;namespace SimpleMathLibrary
{public static class MathOperations{public static int Add(int a, int b){return a + b;}}
}

步骤 3: 配置项目文件

编辑项目的 .csproj 文件,添加 NuGet 包的元数据信息:
注意:PackageId一定要是有效的,可以在nuget.org,上搜索看看是否已经存在

<Project Sdk="Microsoft.NET.Sdk"><PropertyGroup><TargetFramework>net5.0</TargetFramework><PackageId>pzx_test_add</PackageId><Version>1.0.0</Version><Authors>YourName</Authors><Company>YourCompanyName</Company><Description>一个简单的数学运算类库。</Description></PropertyGroup></Project>

请确保替换 YourNameYourCompanyName 为相应的值。

步骤 4: 构建并打包

使用 .NET CLI 构建并打包 NuGet 包:

dotnet pack

这将在 bin\Release 目录下创建一个 NuGet 包 (pzx_test_add.1.0.0.nupkg)。

步骤 5: 获取 NuGet.org API 键

在发布你的包之前,你需要在 NuGet.org 上注册账号并获取 API 键:

  1. 访问 NuGet.org 并登录或创建一个新账户。
  2. 导航到你的账户设置,找到 API Keys 部分并创建一个新的 API 密钥。
  3. 保存你的 API 密钥,你将在下一步中使用它。
    在这里插入图片描述

步骤 6: 发布包到 NuGet.org

使用以下命令将你的包发布到 NuGet.org:

dotnet nuget push ".\bin\Realse\pzx_test_add.1.0.0.nupkg" --api-key your-api-key --source https://api.nuget.org/v3/index.json

也可以直接在网站上浏览,本地文件上传(记得点击sumbit)
在这里插入图片描述

确保替换 your-api-key 为实际的 API 密钥。

步骤 7:查看发布好的包

上传到nuget.org,刷新有点慢,需要等待一段时间
在这里插入图片描述
根据自己的需求选择合适的方式下载包
在这里插入图片描述

步骤 8:验证,上传的包是否正确

创建一个控制台项目,引入pzx_test_add 包
在这里插入图片描述

控制台输出:结果:3

小结

现在,你已经成功创建并发布了一个简单的 C# NuGet 包到 NuGet.org。你可以继续添加更复杂的逻辑和功能到你的类库中,并遵循相同的步骤来更新 NuGet 包。

记住,好的 NuGet 包应该有明确的文档、清晰的使用说明和充分的测试。祝你在 NuGet 包开发的旅程中一切顺利!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/765309.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

[linux][调度] 内核抢占入门 —— 线程调度次数与 CONFIG_PREEMPTION

在工作中&#xff0c;如果你正在做开发的工作&#xff0c;正在在写代码&#xff0c;这个时候测试同事在测试过程中测出了问题&#xff0c;需要你来定位解决&#xff0c;那么你就应该先暂停写代码的工作&#xff0c;转而来定位解决测试的问题&#xff1b;如果你正在定位测试的问…

mysql事务及存储引擎

目录 什么是事务 事务的ACIP特性 事务之间的影响 mysql隔离级别 事务隔离级别的作用范围 事务控制语句 mysql存储引擎 什么是事务 事务是一种机制、一个操作序列&#xff0c;包含了一组数据库操作命令&#xff0c;并且把所有的命令作为一个整体一起向系统提交或撤销操作…

AI预测福彩3D第15弹【2024年3月21日预测--第3套算法重新开始计算第4次测试】

今天咱们继续对第3套算法进行第4次测试&#xff0c;第3套算法加入了012路的权重。废话不多说了&#xff0c;直接上结果吧~ 最终&#xff0c;经过研判分析&#xff0c;2024年3月21日福彩3D的七码预测结果如下&#xff1a; 百位&#xff1a;4 5 7 1 0 6 2 十位&#xff1a;3 1 5 …

QML 布局管理器之GridLayout 项目demo

一.气体控制效果图 二.界面布局代码实现 //DottedLline.qml 虚线绘制 import QtQuick 2.12 import QtQuick.Shapes 1.12Shape {id:canvaswidth: parent.widthheight: parent.heightShapePath{strokeStyle: ShapePath.DashLinestartX: 8startY: 10dashPattern: [1, 3]PathLine{…

在Linux搭建Emlog博客结合内网穿透实现公网访问本地个人网站

文章目录 前言1. 网站搭建1.1 Emolog网页下载和安装1.2 网页测试1.3 cpolar的安装和注册 2. 本地网页发布2.1 Cpolar临时数据隧道2.2.Cpolar稳定隧道&#xff08;云端设置&#xff09;2.3.Cpolar稳定隧道&#xff08;本地设置&#xff09; 3. 公网访问测试总结 前言 博客作为使…

Flink入门知识点汇总(二)

具体内容请看b站尚硅谷课程&#xff01; 32_Flink运行时架构_提交流程_Yarn应用模式_哔哩哔哩_bilibili 窗口 Flink的窗口并不是静态准备好的&#xff0c;而是动态创建的。数据流到达时不会准备24个或者其他完整数量的桶&#xff0c;而是当下桶接满了&#xff0c;才临时又拿新…

001-Windows下PyTorch极简开发环境配置(上)

本节介绍Windows系统下配置一套基于Pytorch框架的极简深度学习开发环境。 目录 0.1 缘起 0.1 缘起 其实大概在2016就开始接触深度学习的相关知识&#xff0c;但一直到2018年左右&#xff0c;还停留在门外汉的状态太&#xff0c;原因很简单&#xff0c;感觉学习的门槛过高。…

web前端之小功能聚集、简单交互效果

MENU 纯CSS实现可编辑文字霓虹灯闪烁效果css之实现流水文字、闪烁、荧光、炫酷web前端之文本擦除效果与下划线结合css之下划线动画 纯CSS实现可编辑文字霓虹灯闪烁效果 效果图 html <h1 contenteditable"true">Hello World</h1>style * {margin: 0;pa…

C/C++在线参考手册的使用技巧

cppreference.com是一个在线的C/C参考手册&#xff0c;是C/C学习者最常用的网站。 网址&#xff1a;cppreference.com 1&#xff0e;搜索 不知道为什么这个网站总是不能正常搜索&#xff0c;实在是太不方便了。 有两个退而求其次的方法&#xff1a; (1)通过搜索引擎指定域名…

无服务器推理在大语言模型中的未来

服务器无服务器推理的未来&#xff1a;大型语言模型 摘要 随着大型语言模型(LLM)如GPT-4和PaLM的进步&#xff0c;自然语言任务的能力得到了显著提升。LLM被广泛应用于聊天机器人、搜索引擎和编程助手等场景。然而&#xff0c;由于LLM对GPU和内存的巨大需求&#xff0c;其在规…

C++常用的区块代码

很多人在刷题时都遇到过不会的情况 这篇文章希望可以帮到你&#xff01; 1.输入n将这个数倒着输出来&#xff1a; while(n!0){tn%10;printf("%d",t);nn/10; }只要会这条代码&#xff0c;很多题目都可以直接秒杀。 如&#xff1a; 输入一个整数n,算出它各个位数的乘积…

【RPC研究】socket 函数调用

突然想深入学习一下RPC调用&#xff0c;研究一下发现这个东西相关联的东西还是比较多的&#xff0c;而且也算补齐一下别的知识。 接下来会写一下相关的知识&#xff0c;但没有什么参考资料基本都是博客看的&#xff0c;或者自己本科学的知识融合&#xff0c;并没有翻啥书&…

[Repo Git] manifests的写法

​manifests​​是个啥 在Repo​中manifests​描述了Repo客户端的结构&#xff0c;也就是可以从manifests​中知道各个模块的代码应该从代码管理仓库当中哪个位置去获取。 ​manifests​的基本结构是一个Git存储库&#xff0c;在顶层目录中持有一个default.xml​文件。 由于m…

程序员想要搞钱不迷茫,这篇文章你可得码好啦!!!

年已经过完了&#xff0c;现在大家都已经返工返校了吧&#xff01;咱又要投入到新一年的战斗了&#xff01;春色恼人不等闲&#xff0c;相信咱都有一个实实在在的愿望和期许&#xff1a;身体健康&#xff0c;财源广进&#xff01;新的一年我们还得继续努力&#xff0c;多多搞钱…

利用IP地址查防止电子招投标串标行为

随着信息技术的快速发展&#xff0c;电子招投标已成为政府和企业采购的主要方式。然而&#xff0c;电子招投标中的串标问题也愈发突出&#xff0c;给公平竞争和资源分配带来了隐患。为了防止串标行为&#xff0c;利用IP地址查已成为一种有效手段。 IP地址查询&#xff1a;IP数…

002_avoid_for_loop_in_Matlab避免使用for循环

避免使用for循环 在程序设计思想中&#xff0c;循环是一个很有力的工具。在循环中&#xff0c;计算机很轻松地重复执行相同的操作。循环是汇编之上的编程中最重要的概念之一。Matlab的循环有两个语言构造&#xff0c;一个是for循环&#xff0c;另一个是while循环。在Matlab中&…

Python实战:全局变量与局部变量

一、引言 在Python编程中&#xff0c;全局变量和局部变量是两种常见的变量类型&#xff0c;它们在代码的执行过程中扮演着重要的角色。理解全局变量和局部变量的概念、作用域和生命周期对于编写清晰、可维护的代码至关重要。本文将详细介绍Python中的全局变量与局部变量&#…

【Vue3笔记01】如何使用Vue3和Vite搭建前端项目的基础开发环境

这篇文章,主要介绍如何使用Vue3和Vite搭建前端项目的基础开发环境【知识星球】。 目录 一、搭建项目环境 1.1、前提条件 1.2、开始搭建 1.3、下载依赖

罗德与施瓦茨联合广和通全面验证RedCap模组FG132系列先进性能

近日&#xff0c;罗德与施瓦茨联合广和通完成Redcap(Reduce Capability)功能和性能验证。本次测试使用R&SCMX500 OBT(One Box Tester)无线通信测试仪&#xff0c;主要验证广和通RedCap模组FG132系列射频性能以及IP层吞吐量&#xff0c;包括RedCap上下行吞吐量和射频指标如矢…

【计算机网络篇】数据链路层(2)封装成帧和透明传输

文章目录 &#x1f95a;封装成帧和透明传输&#x1f388;封装成帧&#x1f388;透明传输&#x1f5d2;️面向字节的物理链路使用字节填充的方法实现透明传输。&#x1f5d2;️面向比特的物理链路使用比特填充的方法实现透明传输。 &#x1f6f8;练习 &#x1f95a;封装成帧和透…