前言
上篇,我們已經講Nancy的引數繫結bug修復,其實就是一個基於原始碼修改的擴充套件方法。只需要新增在專案中,並在攔截器中呼叫一下修復方法即可。本篇,我們簡單介紹一下,如何將修復方法打包成nuget包,並上傳到nuget官方,提供給他人使用。
網上已經有各種花式更高階全面的教程,一番百度你也能搞定。但是,我的教程更簡單更基礎,可以理解為從零開始學nuget打包。
準備工作
1.nuget的賬戶,可以在官網https://www.nuget.org/進行註冊,如果有微軟賬戶,可以使用微軟賬戶登入。
2.下載nuget打包工具,下載地址https://github.com/NuGetPackageExplorer/NuGetPackageExplorer/releases
開始
1.開啟專案集,右鍵-屬性-應用程式-程式集資訊。填寫基本的專案標題,描述等資訊。填寫完畢,將專案生成一下。
開啟專案bin目錄,選擇release目錄,可以看到已經生成完畢的dll檔案。
2.將下載的NuGetPackageExplorer解壓,雙擊開啟NuGetPackageExplorer.exe
3.選擇Create a new package(Ctrl+N)建立一個新的包。
4.在右側的Package contents下方空白處,右鍵,選擇Add Lib Folder。
5.選中lib,右鍵,選中Add Existing File。
6.將除了Nancy.dll,Nancy.xml之外的其他檔案都新增到lib資料夾中。因為這個nuget就是來修復Nancy的,所以引用這個包的專案中必然也是已經引入了Nancy的,自然也就不需要新增Nancy.dll檔案在包中。
匯入之後是這樣的
7.現在該編輯nuget包資訊了,有三種操作方式:
A.點選Package metadata下面的這個帶筆的圖示
B.選擇Edit-Edit Metadata
C.快捷鍵操作:Ctrl+K
這裡有很多可以填寫的內容,但並不是每個都需要填寫。具體每一項的內容,我也不是很清楚,只把自己覺得可以填寫的內容填寫了。我只能簡單說一下,幾項基礎的內容專案,歡迎大佬補充。
Id:包名,就是你在Nuget程式包管理器中搜尋時的名稱
Version:顧名思義,就是版本號,在Nuget程式包管理器中更新包時,可以選擇的版本號。
Title:好像沒啥用,我就簡單寫了包的作用。
Authors:包作者的名字,在Nuget程式包管理器中檢視包資訊時,可以檢視該資訊。
Icon:包的圖示,這裡需要用網路地址,我是用的圖床工具生成的連結。
Project Url:就是專案地址,這是上傳到nuget之後的地址
License:同上
Description:這裡是對包的作用進行一些簡單的描述,在Nuget程式包管理器中檢視包資訊時,可以檢視該資訊。
Release Notes:對本次釋出的情況做一下簡單說明,類似於你git提交程式碼時所寫的說明。
Copyright:你懂得
Language:語言,我選的是中文,應該是無所謂的
接下來,填寫依賴資訊,點選Edit dependencies
點選綠色的加號,新增一個依賴組。再點選下方的扳手圖示,搜尋依賴包Nanacy, 雙擊Nancy選擇完畢。
Nancy版本號,我們輸入1.0.0,經過非專業的測試,只考慮1.0.0以上版本的Nancy進行修復。你的程式依賴什麼包的什麼版本,自己看著辦吧,哈哈!
輸入完畢,點選右下角的綠色加號,點選OK完成新增。
這裡我有點疑惑,沒搞明白怎麼新增對.NET Framework版本的依賴。可以新增.NET Framework不同版本的資料夾,然後呢,我也不是很清楚。知道的大佬可以分享一下!
該填寫的都填寫好了,剩下的我也不知道該怎麼填,不管了,點選綠色勾勾儲存。
8.這時,我們需要先去申請nuget包上傳的Api Key。開啟Nuget Api Key頁面https://www.nuget.org/account/apikeys,輸入api key的名稱,有效期,作者。Glob Pattern可以輸入*來匹配所有的包,點選Create完成建立。
建立完成,點選Copy複製Api Key,把這個Api Key儲存下來,因為這個頁面重新整理之後就沒有了,後續包更新也需要這個Api Key來發布更新包。
重新整理之後,是這樣的
9.現在已有Api Key了,可以上傳包了。回到NuGetPackageExplorer,繼續。選擇File-Publish
插一句,如果你希望將包生成到本地,可以選擇File-Save As
你就可以得到一個本地的nuget包安裝檔案
我們繼續來發布,輸入我們剛才得到的Api Key,點選Publish完成釋出。
幾秒鐘之後,上傳成功。
然後,你就可以在nuget程式包管理頁面https://www.nuget.org/account/Packages檢視到我們上傳的nuget包了。
大概5-10分鐘,你會收到一份釋出成功的郵件,然後就可以在nuget程式包管理器中搜尋到我們釋出的nuget包了。
最後,在專案中安裝我們的修復包,引入名稱空間Nancy.FixQueryDictionary,在攔截器中呼叫修復方法即可。
最最最最最後,附上本次文章所用到的全部原始碼。
好了,教程到此結束了,歡迎各路大佬指教完善!