C#【必备技能篇】制作NuGet程序包,并发布到NuGet官网

news2025/2/25 6:10:50

文章目录

  • 一、准备工作:在NuGet上创建并获取API Keys
    • 1、首先需要登录,直接用微软账户登录即可
    • 2、点击右上角菜单API Keys,创建Key
    • 3、填写信息并创建
    • 4、复制API Key
  • 二、制作一个简单的dll
  • 三、创建发布文件夹
  • 四、上传NuGet程序包并发布
    • 1、方法一:使用命令行上传,需要下载nuget.exe
      • 1) 到[https://www.nuget.org/downloads](https://www.nuget.org/downloads)下载`nuget.exe`
      • 2) 配置nuget环境变量
      • 3) 生成nuspec文件
      • 4)生成nupkg文件
      • 5) 复制1.4的API Key,上传到NuGet
    • 2、方法二:使用界面工具上传,需要下载NuGet Package Explorer【推荐!】
    • 1、下载NuGet Package Explorer
    • 2、创建新Package
    • 3、新增lib文件夹、新增net461文件夹、添加已有文件
    • 4、编辑上传数据
    • 5、保存nupkg文件
    • 6、发布到NuGet
  • 五、NuGet包的管理

一、准备工作:在NuGet上创建并获取API Keys

网址:https://www.nuget.org/

1、首先需要登录,直接用微软账户登录即可

在这里插入图片描述

2、点击右上角菜单API Keys,创建Key

在这里插入图片描述

3、填写信息并创建

这里写你要上传NuGet程序包的名称 【每个NuGet程序包(对应一个名称)可以上传多个版本】
在这里插入图片描述

4、复制API Key

在这里插入图片描述

二、制作一个简单的dll

新建一个“库”项目,代码如下:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace ClassLibrary1
{
    public class Class1
    {
        public static int Add(int a, int b)
        {
            return a + b;
        }
        public static int Sub(int a, int b)
        {
            return a -b;
        }
    }
}

框架使用.NET Framework 4.6.1,这个在后面也会使用到,输出类型使用类库
在这里插入图片描述
生成如下dll:
在这里插入图片描述

三、创建发布文件夹

为了更好管理文件,在E:\nuget新建MyPackage_Star302Test文件夹,存放所需的文件
在这里插入图片描述

四、上传NuGet程序包并发布

1、方法一:使用命令行上传,需要下载nuget.exe

1) 到https://www.nuget.org/downloads下载nuget.exe

在这里插入图片描述

2) 配置nuget环境变量

  • 把下载的nuget.exe放到E:\nuget
  • 打开电脑属性–高级系统设置–环境变量–系统变量,选择Path–编辑–新建–填写E:\nuget,确定
    在这里插入图片描述环境变量配置好,就可以使用nuget指令了

3) 生成nuspec文件

使用nuget spec命令生产.nuspec 文件
在这里插入图片描述在这里插入图片描述
.nuspec 文件中的内容为xml格式,如下,可以简单了解:
在这里插入图片描述

更改后的内容为:

<?xml version="1.0" encoding="utf-8"?>
<package >
  <metadata>
    <id>PackageTest</id>
    <version>1.0.0</version>
    <authors>Star302</authors>
    <requireLicenseAcceptance>false</requireLicenseAcceptance>
    <license type="expression">MIT</license>
    <!-- <icon>icon.png</icon> -->
    <projectUrl>http://project_url_here_or_delete_this_line/</projectUrl>
    <description>Package description</description>
    <releaseNotes>Summary of changes made in this release of the package.</releaseNotes>
    <copyright>$copyright$</copyright>
    <tags>Tag1 Tag2</tags>
    <dependencies>
      <group targetFramework=".NETStandard2.1">
        <dependency id="SampleDependency" version="1.0.0" />
      </group>
    </dependencies>
  </metadata>
</package>

4)生成nupkg文件

使用nuget pack命令生产.nupkg文件
在这里插入图片描述在这里插入图片描述

5) 复制1.4的API Key,上传到NuGet

在这里插入图片描述

运行如下指令:

nuget push PackageTest.1.0.0.nupkg xxxkey -Source https://api.nuget.org/v3/index.json

【我试了几次都没成功,不知道为什么】

在这里插入图片描述

2、方法二:使用界面工具上传,需要下载NuGet Package Explorer【推荐!】

1、下载NuGet Package Explorer

https://www.microsoft.com/zh-cn/p/nuget-package-explorer/9wzdncrdmdm3?activetab=pivot:overviewtab

2、创建新Package

在这里插入图片描述

3、新增lib文件夹、新增net461文件夹、添加已有文件

在这里插入图片描述

在这里插入图片描述在这里插入图片描述

4、编辑上传数据

这里选择Edit Metadata,Edit Metadata Source则是xml文件格式的
在这里插入图片描述
更改一些参数:
在这里插入图片描述
添加项目依赖,即依赖哪些框架。比如.NETFramework,.NETStandard等
在这里插入图片描述
在这里插入图片描述
最后,点击确认
在这里插入图片描述
编辑完成,看下效果
在这里插入图片描述

看一下Metadata Source对应的内容,其实和刚刚编辑的信息是一致的。
在这里插入图片描述

在这里插入图片描述

5、保存nupkg文件

在这里插入图片描述
在这里插入图片描述

6、发布到NuGet

在这里插入图片描述
在这里插入图片描述
发布成功:
![在这里插入图片描述
在Visual Stuido中查看:
在这里插入图片描述

五、NuGet包的管理

自己到https://www.nuget.org/探索一下就好,很简单的。

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

参考:https://blog.csdn.net/weixin_38211198/article/details/118438071

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

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

相关文章

java 上传压缩包遍历内容

项目环境&#xff1a;Spring Boot 2.0.6.RELEASE <parent><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-parent</artifactId><version>2.0.6.RELEASE</version><relativePath/> <!-- loo…

Linux安装部署 seata server 1.4.2

Linux安装部署 seata server 1.4.2 下载安装包上传至服务器 1.首先从GitHub拉取seata压缩包 https://github.com/seata/seata/releases/download/v1.4.2/seata-server-1.4.2.zip 下载到本地后上传至服务器 或使用命令拉取 wget https://github.com/seata/seata/release…

数据库系统-故障恢复

文章目录 一、数据库故障恢复思路1.1 故障类型 影响1.1.1 DMBS运行方式1.1.2 故障类型 1.2 故障恢复1.2.1 数据库故障恢复1.2.2 事务故障恢复1.2.3 系统故障恢复1.2.4 介质故障恢复 二、运行日志及其检查点2.1 DB Log2.1.1 事务的操作2.1.2 缓冲区处理策略 2.2 日志记录 三、三…

Binder与 四大组件工作原理 Service、BroadCastReceiver、ContentProvider

Service 工作原理 Service有两套流程&#xff0c;一套是启动流程&#xff0c;另一套是绑定流程。我们做App开发的同学都应该知道 1&#xff09;在新进程启动Service 我们先看Service启动过程&#xff0c;假设要启动的Service是在一个新的进程中&#xff0c;分为5个阶段&#…

农业信息化有哪些SCI期刊推荐? - 易智编译EaseEditing

以下是一些农业信息化领域的SCI期刊推荐&#xff1a; Computers and Electronics in Agriculture&#xff1a; 该期刊涵盖了计算机和电子技术在农业生产和食品生产中的应用&#xff0c;如精准农业、农业机械自动化、智能传感器、农业模型和模拟等方面的研究。 影响因子为4.5…

离散数学组合计数

基本的组合计数公式 主要内容 加法法则和乘法法则排列与组合二项式定理与组合恒等式多项式定理 加法法则和乘法法则 加法法则乘法法则分类处理与分步处理 问题1&#xff1a;某旅游团从南京到上海&#xff0c;可以乘骑车&#xff0c;也可以乘火车&#xff0c;假定骑车每日有…

PHP源码的加密方法分享

关于PHP PHP是一种易于学习和使用的服务器端脚本语言。只需要很少的编程知识你就能使用PHP建立一个真正交互的WEB站点。 PHP是能让你生成动态网页的工具之一。PHP网页文件被当作一般HTML网页文件来处理并且在编辑时你可以用编辑HTML的常规方法编写PHP。 有些时候,我们需要对P…

流程图拖拽视觉编程-流程编辑器

目录 一、简介 二、流程编辑器-视图实现 三、参考资料 一、简介 前期文章&#xff1a; 流程图拖拽视觉编程--概述_Jason~shen的博客-CSDN博客 本期内容&#xff1a; 本期将介绍流程编辑器模块的实现方法&#xff0c;效果图如下所示。该模块基于QT Graphics/View实现&…

AVL 树(自平衡二叉搜索树) 介绍

AVL 树&#xff08;自平衡二叉搜索树) 介绍 前言 在介绍二叉搜索树的章节中提到&#xff0c;二叉搜索树可能退化为线性链表&#xff0c;失去作为二叉树的各种优势。那么过程中需要维持二叉树的形式&#xff0c;同时左右子树的深度差异可控&#xff0c;如果能实现这两个条件&a…

要强的董经贵,与跳不出两轮电动车品质“陷阱”的雅迪

文|智能相对论 作者|陈明涛 “雅迪缺乏一个明确的战略定位&#xff0c;整个企业都没有方向&#xff0c;直接导致雅迪在前期竞争中失去先机。” “行业主要竞争对手更擅长销售和价格战&#xff0c;雅迪一直疲于应付、资源消耗大&#xff0c;结果也不理想。” “团队和经销商…

weblogic 反序列化 (CVE-2020-2551)漏洞复现(vulfocus)

漏洞简介 weblogic 反序列化 &#xff08;CVE-2020-2551&#xff09;漏洞是基于IIOP协议执行远程代码进行利用。 启动服务 http://192.168.5.128:10710/console/login/LoginForm.jsp 首先打开此连接&#xff0c;初始化weblogic服务。 准备工具 exp-自己写一个即可. javac…

企业编码生成系统--Python基础项目(4)

1. 成品展示&#x1f697;&#x1f680;&#x1f6eb; 运行&#x1f680;&#x1f680;&#x1f680;&#xff1a;1.在PyCharm中运行《企业编码生成系统》即可进入如图1所示的系统主界面。2.在该界面中可以选择要使用功能对应的菜单进行不同的操作。3.在选择功能菜单时&#x…

搭建electron-vue

electron-vue 准备工作修改package.jsonappveyor.yml.travis.yml.gitignore.eslintrc.js.eslintignore.babelrcsrc/renderer/main.jssrc/renderer/App.vuesrc/renderer/store/index.jssrc/renderer/store/modules/Counter.jssrc/renderer/store/modules/Counter.jssrc/renderer…

GT928 TP驱动跟读及虚拟按键上报解析

目前公司TP常用一套代码。MTK 平台使用.ko形式加载&#xff0c;所以跟读一下加深理解。 static struct i2c_driver tpd_i2c_driver {.driver {.of_match_table of_match_ptr(gt9xx_dt_match),},.probe tpd_i2c_probe,.remove tpd_i2c_remove,.detect tpd_i2c_detect,.dr…

万物皆数,算无止境 | 「雪浪算力开发者大赛」圆满收官

时在中春&#xff0c;阳和方起。 4月23日&#xff0c;「雪浪算力开发者大赛」 在雪浪小镇迎来完美收官。 本次大赛吸引了全球超过2422名开发者&#xff0c; 共有624支企业队伍&#xff0c; 288支高校队伍报名参赛&#xff0c; 累计提交作品9895份。 经过三个月激烈的角逐…

Linux shell编程 循环语句for continue break

for循环是编程语言中一种循环语句 示例1&#xff1a;循环读取user.txt中的用户名&#xff0c;创建用户。设置密码。 for i in $(cat /opt/user.txt) douseradd $iecho 123456 | passwd --stdin $i done 示例2&#xff1a;循环读取ipaddr文本文件中地址&#xff0c;执行ping命令…

基于空间矢量脉宽调制(SVPWM)的并网逆变器研究(Simulink)

&#x1f4a5;&#x1f4a5;&#x1f49e;&#x1f49e;欢迎来到本博客❤️❤️&#x1f4a5;&#x1f4a5; &#x1f3c6;博主优势&#xff1a;&#x1f31e;&#x1f31e;&#x1f31e;博客内容尽量做到思维缜密&#xff0c;逻辑清晰&#xff0c;为了方便读者。 ⛳️座右铭&a…

day38—选择题

文章目录 1.在计算机网络中&#xff0c;TCP和UDP协议的相似之处是&#xff08;D&#xff09;2.下列哪项最恰当地描述了建立TCP连接时“第一次握手”所做的工作&#xff08;C&#xff09;3.关于以下 URL 的描述错误的是&#xff08;A&#xff09;4.不属于交换机攻击的是&#xf…

LangChain入门指南

LangChain入门 什么是LangChain如何使用 LangChain&#xff1f;LangChain的模型LangChain 的主要特点使用示例构建语言模型应用程序&#xff1a;LLMPrompt Templates: 管理LLMs的Prompts构建语言模型应用程序&#xff1a;Chat Model完整代码 什么是LangChain LangChain是一个强…

【C语言】leetcode每日一题

目录 前言题目描述题目分析代码描述 前言 时间过得真快&#xff0c;马上又要回家了&#xff0c;马上又要开始卷了。不是每朵鲜花都能代表爱情&#xff0c;但是玫瑰做到了&#xff1b;不是每棵树都能耐得住干渴&#xff0c;但是白杨做到了&#xff1b;不是每个人都在追求上进&a…