从一次解决Nancy参数绑定“bug”开始发布自己的第一个nuget包(下篇)

  • A+
所属分类:.NET技术
摘要

      上篇,我们已经讲Nancy的参数绑定bug修复,其实就是一个基于源码修改的扩展方法。只需要添加在项目中,并在拦截器中调用一下修复方法即可。本篇,我们简单介绍一下,如何将修复方法打包成nuget包,并上传到nuget官方,提供给他人使用。


前言

      上篇,我们已经讲Nancy的参数绑定bug修复,其实就是一个基于源码修改的扩展方法。只需要添加在项目中,并在拦截器中调用一下修复方法即可。本篇,我们简单介绍一下,如何将修复方法打包成nuget包,并上传到nuget官方,提供给他人使用。

网上已经有各种花式更高阶全面的教程,一番百度你也能搞定。但是,我的教程更简单更基础,可以理解为从零开始学nuget打包。

准备工作

1.nuget的账户,可以在官网https://www.nuget.org/进行注册,如果有微软账户,可以使用微软账户登录。

2.下载nuget打包工具,下载地址https://github.com/NuGetPackageExplorer/NuGetPackageExplorer/releases

开始

1.打开项目集,右键-属性-应用程序-程序集信息。填写基本的项目标题,描述等信息。填写完毕,将项目生成一下。

从一次解决Nancy参数绑定“bug”开始发布自己的第一个nuget包(下篇)

 

 打开项目bin目录,选择release目录,可以看到已经生成完毕的dll文件。

从一次解决Nancy参数绑定“bug”开始发布自己的第一个nuget包(下篇) 

 2.将下载的NuGetPackageExplorer解压,双击打开NuGetPackageExplorer.exe

从一次解决Nancy参数绑定“bug”开始发布自己的第一个nuget包(下篇)  

从一次解决Nancy参数绑定“bug”开始发布自己的第一个nuget包(下篇) 

 3.选择Create a new package(Ctrl+N)创建一个新的包。

从一次解决Nancy参数绑定“bug”开始发布自己的第一个nuget包(下篇) 

 4.在右侧的Package contents下方空白处,右键,选择Add Lib Folder。

从一次解决Nancy参数绑定“bug”开始发布自己的第一个nuget包(下篇)

 5.选中lib,右键,选中Add Existing File。

从一次解决Nancy参数绑定“bug”开始发布自己的第一个nuget包(下篇)

  6.将除了Nancy.dll,Nancy.xml之外的其他文件都添加到lib文件夹中。因为这个nuget就是来修复Nancy的,所以引用这个包的项目中必然也是已经引入了Nancy的,自然也就不需要添加Nancy.dll文件在包中。

从一次解决Nancy参数绑定“bug”开始发布自己的第一个nuget包(下篇)

   导入之后是这样的

从一次解决Nancy参数绑定“bug”开始发布自己的第一个nuget包(下篇)

  7.现在该编辑nuget包信息了,有三种操作方式:

      A.点击Package metadata下面的这个带笔的图标

 从一次解决Nancy参数绑定“bug”开始发布自己的第一个nuget包(下篇)

     B.选择Edit-Edit Metadata

 从一次解决Nancy参数绑定“bug”开始发布自己的第一个nuget包(下篇)

     C.快捷键操作:Ctrl+K

从一次解决Nancy参数绑定“bug”开始发布自己的第一个nuget包(下篇)

这里有很多可以填写的内容,但并不是每个都需要填写。具体每一项的内容,我也不是很清楚,只把自己觉得可以填写的内容填写了。我只能简单说一下,几项基础的内容项目,欢迎大佬补充。

Id:包名,就是你在Nuget程序包管理器中搜索时的名称

Version:顾名思义,就是版本号,在Nuget程序包管理器中更新包时,可以选择的版本号。

Title好像没啥用,我就简单写了包的作用。

Authors包作者的名字,在Nuget程序包管理器中查看包信息时,可以查看该信息。

Icon包的图标,这里需要用网络地址,我是用的图床工具生成的链接。

Project Url:就是项目地址,这是上传到nuget之后的地址

License:同上

Description:这里是对包的作用进行一些简单的描述,在Nuget程序包管理器中查看包信息时,可以查看该信息。

Release Notes:对本次发布的情况做一下简单说明,类似于你git提交代码时所写的说明。

Copyright:你懂得

Language:语言,我选的是中文,应该是无所谓的

从一次解决Nancy参数绑定“bug”开始发布自己的第一个nuget包(下篇)

 接下来,填写依赖信息,点击Edit dependencies

从一次解决Nancy参数绑定“bug”开始发布自己的第一个nuget包(下篇)

  点击绿色的加号,新增一个依赖组。再点击下方的扳手图标,搜索依赖包Nanacy, 双击Nancy选择完毕。

从一次解决Nancy参数绑定“bug”开始发布自己的第一个nuget包(下篇)

Nancy版本号,我们输入1.0.0,经过非专业的测试,只考虑1.0.0以上版本的Nancy进行修复。你的程序依赖什么包的什么版本,自己看着办吧,哈哈!

从一次解决Nancy参数绑定“bug”开始发布自己的第一个nuget包(下篇)

 输入完毕,点击右下角的绿色加号,点击OK完成添加。

从一次解决Nancy参数绑定“bug”开始发布自己的第一个nuget包(下篇)

 这里我有点疑惑,没搞明白怎么添加对.NET Framework版本的依赖。可以添加.NET Framework不同版本的文件夹,然后呢,我也不是很清楚。知道的大佬可以分享一下!

从一次解决Nancy参数绑定“bug”开始发布自己的第一个nuget包(下篇)

 

 该填写的都填写好了,剩下的我也不知道该怎么填,不管了,点击绿色勾勾保存。

从一次解决Nancy参数绑定“bug”开始发布自己的第一个nuget包(下篇)

8.这时,我们需要先去申请nuget包上传的Api Key。打开Nuget Api Key页面https://www.nuget.org/account/apikeys,输入api key的名称,有效期,作者。Glob Pattern可以输入*来匹配所有的包点击Create完成创建。

从一次解决Nancy参数绑定“bug”开始发布自己的第一个nuget包(下篇)

创建完成,点击Copy复制Api Key,把这个Api Key保存下来,因为这个页面刷新之后就没有了,后续包更新也需要这个Api Key来发布更新包。

从一次解决Nancy参数绑定“bug”开始发布自己的第一个nuget包(下篇)

 刷新之后,是这样的

从一次解决Nancy参数绑定“bug”开始发布自己的第一个nuget包(下篇)

 9.现在已有Api Key了,可以上传包了。回到NuGetPackageExplorer,继续。选择File-Publish

从一次解决Nancy参数绑定“bug”开始发布自己的第一个nuget包(下篇) 

插一句,如果你希望将包生成到本地,可以选择File-Save As

从一次解决Nancy参数绑定“bug”开始发布自己的第一个nuget包(下篇) 

你就可以得到一个本地的nuget包安装文件

从一次解决Nancy参数绑定“bug”开始发布自己的第一个nuget包(下篇) 

 我们继续来发布,输入我们刚才得到的Api Key,点击Publish完成发布。

从一次解决Nancy参数绑定“bug”开始发布自己的第一个nuget包(下篇) 

 几秒钟之后,上传成功。

从一次解决Nancy参数绑定“bug”开始发布自己的第一个nuget包(下篇) 

然后,你就可以在nuget程序包管理页面https://www.nuget.org/account/Packages查看到我们上传的nuget包了。

从一次解决Nancy参数绑定“bug”开始发布自己的第一个nuget包(下篇)

 

 大概5-10分钟,你会收到一份发布成功的邮件,然后就可以在nuget程序包管理器中搜索到我们发布的nuget包了。

 从一次解决Nancy参数绑定“bug”开始发布自己的第一个nuget包(下篇) 

 从一次解决Nancy参数绑定“bug”开始发布自己的第一个nuget包(下篇)

 最后,在项目中安装我们的修复包,引入命名空间Nancy.FixQueryDictionary,在拦截器中调用修复方法即可。

从一次解决Nancy参数绑定“bug”开始发布自己的第一个nuget包(下篇)

最最最最最后,附上本次文章所用到的全部源代码。

GitHub

Gitee

 好了,教程到此结束了,欢迎各路大佬指教完善!