如何将项目打包上传到NuGet服务器?

这篇具有很好参考价值的文章主要介绍了如何将项目打包上传到NuGet服务器?。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

如何将项目打包上传到NuGet服务器?

作者:西瓜程序猿
主页传送门:https://www.cnblogs.com/kimiliucn


前言

在我写[在.NET Framework中使用RocketMQ(阿里云版)]这篇博客的时候,因为封装了很多代码在单独的DLL中,包括生产者、消费者以及官方SDK等等,然后都在博客中体现出来导致博客大量代码,然后有位读者就建议打包成NuGet包,大家也可以直接安装引入调用,我也觉得很不错,于是就有了这篇文章啦!
如何将项目打包上传到NuGet服务器?

那NuGet是什么呢?NuGet是.NET的包管理器,NuGet客户端工具提供了生成和使用包的能力,NuGet库是所有包作者和消费者使用的中心包存储库。那来看一下如何将代码打包上传到NuGet服务器吧!


一、提前准备

1.1-登录NuGet官网

(1)打开官方网址,然后点击【Sign in with Microsoft】使用微软账号登录。

登录网址:https://www.nuget.org/users/account/LogOn

如何将项目打包上传到NuGet服务器?
(2)输入微软邮箱,然后点击【下一步】进行登录。
如何将项目打包上传到NuGet服务器?


1.2-创建API Key秘钥

(1)点击右上角用户名称,然后点击【API Keys】。
如何将项目打包上传到NuGet服务器?
(2)然后点击【Create】,在输入必填的信息。【KeyName】可以填项目包名,也可以自定义命名,唯一就行了。然后【Glob Pattern】可以填写"*"来替换任何序列。
如何将项目打包上传到NuGet服务器?
API密钥是一种令牌,可以向NuGet Gallery识别身份。NuGet命令行实用程序允许使用API密钥向库提交NuGet包以进行身份验证。
注意要对API密钥保密!如果某个密钥意外泄露,可以随时生成一个新密钥。如有必要,还可以删除现有的API密钥。

注意:要将包推送到nuget.org,必须使用nuget.exe v4.1.0或更高版本,它实现了所需的nuget协议。

(3)然后点击【Copy】复制秘钥,请自行将秘钥保存好,后面会用到。
如何将项目打包上传到NuGet服务器?


二、创建与打包项目

(1) [西瓜程序猿]创建一个名为【Kimi.RocketMQ.NET】类库,目标框架使用【.NET Framework 4.8】,输出类型为【类库】。
如何将项目打包上传到NuGet服务器?
(2)代码编写后,然后使用Release模式生成dll。(我这没有依赖其他任何外部包,如果依赖了,上传打包前需要进行配置)
如何将项目打包上传到NuGet服务器?
如何将项目打包上传到NuGet服务器?
(3) 打开【AssemblyInfo.cs】文件,设置相关属性值和版本。
如何将项目打包上传到NuGet服务器?
(4)为了方便管理文件,我们可以单独新建一个文件夹保存要上传的文件。[西瓜程序猿]这里新建名为【Kimi.RocketMQ.NET】的文件夹。
将编译好的DLL,放在此文件夹。
如何将项目打包上传到NuGet服务器?
然后新建一个【readme.md】用来介绍文件,会在包管理中显示此文件的内容
如何将项目打包上传到NuGet服务器?
在设计一个ICON(图标需要上传到线上,然后将外网能访问的图片地址进行上传到NuGet),作为nuget包的图标。大小建议是128px或256px(注意:文件格式必须是.png)。
如何将项目打包上传到NuGet服务器?
文件夹截图:
如何将项目打包上传到NuGet服务器?


三、上传NuGet

[西瓜程序猿]准备了要上传NuGet上传使用的资源包,如果大家要下载最新版请去官网下载。可以访问下载(如果失效了,请联系我)。

下载地址(编码:0m7AToKX):https://yongteng.lanzoub.com/ip4nN17bdtbi
密码: 5jh4

文件截图:
如何将项目打包上传到NuGet服务器?


3.1-使用可视化方式【推荐】

3.1.1-下载工具

(1)首页将下载好资源包里面的【PackageExplorer.4.4.72】文件夹,复制到一个固定的地方,不要删除了。[西瓜程序猿]放在【D:\RuanjianAnzhuang\PackageExplorer.4.4.72】路径下了,我们打开【NuGetPackageExplorer.exe】应用程序。
如何将项目打包上传到NuGet服务器?
如果需要在官网下载最新版,可以点击这个链接:

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

(2)然后点击【Create a new package (CtrI+N)】创建一个新Package。
如何将项目打包上传到NuGet服务器?


3.1.2-配置相关包

(1)新增【lib】文件夹。
如何将项目打包上传到NuGet服务器?
如何将项目打包上传到NuGet服务器?
(2)然后新选择响应的框架版本,会自动创建版本文件夹,比如[西瓜程序猿]创建的【Kimi.RocketMQ.NET】包是给.NET Framework使用的,我这边就先创建这些。
如何将项目打包上传到NuGet服务器?
如何将项目打包上传到NuGet服务器?
也可以自己创建文件夹,比如没有4.8版本,那可以自行创建一个为【net48】文件夹。
如何将项目打包上传到NuGet服务器?
如何将项目打包上传到NuGet服务器?
(3)然后再每个文件夹中,添加之前打包后的DLL包。
如何将项目打包上传到NuGet服务器?
添加好文件后,目录是这样的:
如何将项目打包上传到NuGet服务器?
(3)然后编辑上传数据,选择【Edit】——>【Edit Metadata】,然后填写相关信息。
如何将项目打包上传到NuGet服务器?
如何将项目打包上传到NuGet服务器?
(4)然后如果有依赖性,还需添加项目依赖,依赖哪些框架比如.NETFramework,.NETStandard等。
如何将项目打包上传到NuGet服务器?
(5)然后编辑完成,看一下效果。
如何将项目打包上传到NuGet服务器?
(5)点击这个可以看到配置的源代码。
如何将项目打包上传到NuGet服务器?
代码:

<?xml version="1.0" encoding="utf-8"?>
<package xmlns="http://schemas.microsoft.com/packaging/2012/06/nuspec.xsd">
  <metadata>
    <id>Kimi.RocketMQ.NET</id>
    <version>1.0.9</version>
    <title>Kimi.RocketMQ.NET</title>
    <authors>西瓜程序猿</authors>
    <owners>西瓜程序猿</owners>
    <requireLicenseAcceptance>false</requireLicenseAcceptance>
    <licenseUrl>https://licenses.nuget.org/MIT</licenseUrl>
    <projectUrl>https://www.cnblogs.com/kimiliucn/p/17662052.html</projectUrl>
    <iconUrl>http://xxx.xxx.xxx.192:7980/Temp_Storage/Images/2023-08-31/9dd8dbcccd314a31835c69ea344b0216.png</iconUrl>
    <description>.NET Framework使用RocketMQ(阿里云版)</description>
    <summary>.NET Framework使用RocketMQ(阿里云版)</summary>
    <releaseNotes>发布1.0.9</releaseNotes>
    <copyright>Copyright © 2023 西瓜程序猿</copyright>
    <language>zh-CN</language>
    <tags>Kimi.RocketMQ.NET</tags>
    <dependencies>
      <group targetFramework=".NETFramework4.8" />
    </dependencies>
  </metadata>
</package>

(6)点击【File】——>【Save As】保存nupkg文件。
如何将项目打包上传到NuGet服务器?
文件截图:
如何将项目打包上传到NuGet服务器?


3.3-上传到nuget服务器

(1)点击【File】——>【Publish】。
如何将项目打包上传到NuGet服务器?
(2)【Publish key or PAT】填写秘钥Key,然后点击【Publish】发布,只要没报错就表示上传成功了。
如何将项目打包上传到NuGet服务器?
(3)稍等1-3分钟,然后会收到上传成功的邮件通知。
如何将项目打包上传到NuGet服务器?
(4)然后可以去官网看看是否此版本发布成功了。

[西瓜程序猿]案例:https://www.nuget.org/packages/Kimi.RocketMQ.NET/

如何将项目打包上传到NuGet服务器?


3.2-使用命令方式

3.2.1-下载软件配置环境

(1)点击下面地址下载软件,选择比较新的版本即可(如果是通过上面的链接下载了资源包,就可以跳过这一步了,直接看第二步骤)。

官网下载:https://www.nuget.org/downloads

如何将项目打包上传到NuGet服务器?
下载好后得到:
如何将项目打包上传到NuGet服务器?
(2)把下载好的【nuget.exe】这个文件,放在一个固定的地方,不要删了。[西瓜程序猿]放在这个目录【D:\RuanjianAnzhuang\nuget_client】。
如何将项目打包上传到NuGet服务器?
(3)然后来配置环境变量。点击【此电脑】,右击【属性】——>高级系统设置——>环境变量——>系统变量——>选择Path——>编辑——>新建——>填写【D:\RuanjianAnzhuang\nuget_client】,大家根据自己路径配置哈。
如何将项目打包上传到NuGet服务器?
(4)测试是否配置成功。按【win+R】键,然后输入cmd,在输入【nuget】命令查看。

命令:nuget

配置成功截图:
如何将项目打包上传到NuGet服务器?
配置失败截图:
如何将项目打包上传到NuGet服务器?


3.2.2-配置全局Push源地址

配置模拟的push源为nuget.org,输入以下命令:

nuget config -Set DefaultPushSource=nuget.org


3.2.3-设置API Key秘钥

使用下面命令进行设置Nuget的API Key(将my_api_key参数替换成自己生成的APIKey)

nuget setApiKey my_api_key

成功截图:
如何将项目打包上传到NuGet服务器?


3.2.4-生成nuspec文件

使用【nuget spec】命令生产.nuspec 文件,文件xml格式的。

命令:nuget spec

成功截图:
如何将项目打包上传到NuGet服务器?


3.2.5-生成nupkg文件

使用【nuget pack】命令生成.nupkg文件。

命令:nuget pack

成功截图:
如何将项目打包上传到NuGet服务器?


3.2.6-上传到nuget服务器

输入以下命令,可以将.nupkg包上传发布到NuGet服务器上(将my_api_key参数替换成自己生成的APIKey)。

命令:nuget push Kimi.RocketMQ.NET.1.0.0.nupkg my_api_key -Source https://api.nuget.org/v3/index.json

上传成功后的邮件:
如何将项目打包上传到NuGet服务器?
上传成功后,需要等待10几分钟。官方需要先审核,审核通过后还需要进行重新索引,然后还需要同步。等待10多分钟后,就可以搜索到上传的包了。
如何将项目打包上传到NuGet服务器?


四、NuGet包的管理

4.1-删除NuGet包

NuGet包无法删除,但是隐藏对应的版本。
如何将项目打包上传到NuGet服务器?
选择要隐藏的版本后,然后取消勾选【List in search results】,然后点击【Save】保存即可。
如何将项目打包上传到NuGet服务器?
效果(隐藏后就搜索不到1.0.0的版本了):如何将项目打包上传到NuGet服务器?


五、防踩坑指南

5.1-响应状态代码不指示成功: 403

详细错误:

响应状态代码不指示成功: 403 (The specified API key is invalid, has expired, or does not have permission to access the specified package.)。

解决方案:提示秘钥Key无效或者过期了,可以去后台重新生成一个,按照【1.2】步骤操作。


5.2-This package has not been indexed yet

详细错误:

This package has not been indexed yet. It will appear in search results and will be available for install/restore after indexing is complete.

错误截图:
如何将项目打包上传到NuGet服务器?
解决方案:错误提示说"此程序包尚未编制索引。它将出现在搜索结果中,并可在索引完成后进行安装/还原"。所以需要等10分钟左右就行了,等程序包编制好索引就可以在NuGet客户端搜索到了。


5.3-在以下主源中找不到包“Kimi.RocketMQ.NET 1.0.5”

详细错误:

在以下主源中找不到包“Kimi.RocketMQ.NET 1.0.5”:“https://api.nuget.org/v3/index.json”。请验证你的所有联机包源是否都可用,以及是否正确指定了包 ID、版本。

解决方案:等待10分钟左右就能找到了。因为上传成功后需要进行编制索引、同步等操作。


5.4-响应状态代码不指示成功: 409

详细错误:

响应状态代码不指示成功: 409 (A package with ID 'Kimi.RocketMQ.NET' and version '1.0.5' already exists and cannot be modified.)。

错误截图:
如何将项目打包上传到NuGet服务器?
解决方案:说明这个【1.0.9】的版本已经存在了,修改版本号重新发布即可。



原文链接:https://www.cnblogs.com/kimiliucn/p/17675287.html文章来源地址https://www.toymoban.com/news/detail-692063.html

到了这里,关于如何将项目打包上传到NuGet服务器?的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 前端如何将项目打包部署到服务器

      本篇文章从前端项目打包开始,逐步完成项目部署到服务器的操作,这次咱们采取的部署方案是通过vscode中Remote-SSH和SFTP两个插件实现项目部署到服务器,并在服务器上通过nginx代理将请求转发到对应的端口。   先将自己开发完成的本地项目进行打包,打包之后会产生一个

    2024年03月14日
    浏览(48)
  • 如何使用Vite打包和部署项目到服务器二级路由

    如果你想把你用Vite构建的项目部署到服务器的二级路由上,比如 http://demo.dev/admin/  ,你需要注意以下几个步骤: 基础路径base是指你的项目在服务器上的相对路径,比如你的项目部署在  http://demo.dev/admin/  上,那么你的基础路径就是 /admin/ 。你需要在两个地方配置基础路径

    2024年02月04日
    浏览(34)
  • Vue项目上线打包好的文件如何在服务器上部署?

    1.打开router下的js文件,调成hash模式: mode:\\\'hash\\\'   2.终端输入: npm run build 3.此时项目中会多出一个dist的文件,这个文件就是我们打包出来的项目   (1)建立一个新的文件夹 (2)终端输入命令: npm init (3)输入: xxx_server (4)然后一路按回车到文件夹——框架完成,如下图

    2024年02月11日
    浏览(39)
  • 手把手教你如何把vue项目打包后部署到服务器(小白教程)

    一.需要用到的工具 vscode 下载链接:Visual Studio Code - Code Editing. Redefined FinalShell 下载链接:FinalShell官网 二.打包步骤 1.vscode打开你的vue项目-- 点终端 -- 输入npm run build 按回车进行打包;  2.打包成功 , 生成了dist文件夹, 打包好的文件会默认存放在里面;   三. 用FinalShell连接服

    2024年02月16日
    浏览(39)
  • 如何将Unity WebGL项目上传至自己的云服务器上(图文详解)

            之前在Unity上完成的小游戏项目成功导出了.exe文件,但同时又想把它以别的形式再进行导出,虽然Unity官方提供了专门的服务器来给用户上传他们的WebGL项目,但个人感觉那总有点寄人篱下,于是想自己租一个云服务器用来上传自己的项目。         上传的流程主

    2024年04月17日
    浏览(28)
  • Linux +Docker镜像打包导出,上传至内网服务器

      sudo:以管理员权限运行命令,通常用于在 Linux 系统中运行需要管理员权限的命令。 docker:Docker 命令行工具。 commit:提交 Docker 镜像的命令。 -a:指定镜像的作者,这里是作者的名字: yjw。 e007d8b7e1b7:docker的容器id。 my_projectv2:v2:要新创建的镜像的名称和版本号,这里是

    2024年02月02日
    浏览(43)
  • 如何把本地flask项目(框架)上传到服务器(Linux),并后台持续运行(包括requirements文件生成,python项目与域名绑定,保姆级教程)

     2023年中旬,参加了一个比赛,需要搭建一个网站。在不断探索琢磨之后,搭建了一个基于flask的web。直接上干货: 一、首先,在本地准备好自己的flask项目。包括最基本的三个文件: 然后准备生成requirements.txt文件,这个文本文件会告诉服务器你的项目运行所需要的环境,即

    2024年02月04日
    浏览(38)
  • Linux 环境下Docker将镜像打包导出到本地,上传至内网服务器(八)

    docker将镜像导出到本地,上传至内网服务器上 背景:在企业中往往出现了内网不能和外网相通,不能使用docker pull命令来拉取镜像,这个时候我们就可以考虑在有所需镜像的服务器上导出镜像,再将其上传到内网服务器上。 有两种方法,一种是通过容器,一种是通过镜像,其

    2024年02月13日
    浏览(35)
  • vue项目打包部署到服务器

    目录 一、打包项目  二、修改Nginx的配置 三、部署 四、开放端口号 1. 在 vue.config.js 文件中找到并修改,主要是publicPath 与outputDir 两项配置,若项目中有baseUrl,替换为publicPath (baseUrl, vue cli 3.3 已弃用) 2. 修改完成之后就可以进行打包了,在package.json文件找到下图中的打包命

    2024年02月05日
    浏览(46)
  • 打包前后端项目并部署至服务器

    打包命令: npm run build 执行完命令后,会生成一个名为 dist 的文件夹,这个就是打包好的前端项目。 2.1、执行 maven 的 clean ,删除项目编译创建的 target 文件夹 2.2、执行 package,将项目打包至 target 文件夹下 3.1、连接服务器 3.2、在根目录创建文件夹,并上传打包好的前后端项

    2024年01月23日
    浏览(42)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包