封裝 DLL 成 NuGet Package 並發佈到 NuGet Gallery 紀錄 II

在 .NET 的開發領域裡,透過各式各樣 NuGet Package 的使用,可以加速或協助我們自己開發的 .NET 程式,例如今天你想要把 json 資料轉成物件,可以利用 Json.NET 來快速完成,不用自己再重新寫轉換 json 的程式。


甚至於很多 framework 等級的 Library 也都利用 NuGet Package 的方式來發佈使用的,例如: AspNetCore.MVC, Xamarin.Forms

所以,就繼續來研究研究如何發佈 Nuget Package 吧😄
(真是奇怪的結論...🙄)



首先,先在 NuGet 官網上註冊帳號,可以直接使用 Microsoft 帳號作連動,接著登入完成後直接選擇 "API Keys"。



進入 "API Key" 頁面後可以點開 "Create"。 



接著填寫與勾選相關資訊。

Key Name 填寫方便自己識別的名稱,另外可勾選 Expires in 的時間。
Select Scopes 勾選 "Push" 供發佈使用,如果只想上傳到 NuGet Gallery 不想讓別人搜尋使用,可以勾選 Unlist Package。但若沒特殊的需求通常都是選擇 Push,其中 Push 分成兩種選項:

  • Push new packages and package versions,此選項讓這把 API Key 可以新增 NuGet Package 跟更新 NuGet Package。
  • Push only new package versions,此選項則是只能更新 NuGet Package。

Select Packages 在此可勾選可變更的 NuGet Package 的 Key 或是通用的 Key,在這邊填入 "*" 選擇建立通用的 Key。
(可參考旁邊的 Example 的介紹)


沒問題就可以點選 "Create"。



完成後展開 "Manage" 就會看到 Nuget Publish Key 剛剛建立產生的金鑰。

注意金鑰產生後只有提供 一次 的複製機會,複製完畢後請馬上紀錄起來使用,如果之後有需要再次取得金鑰,請用 "Regenerate" 重新產生金鑰。



接著回到 NuGet Package Explorer,並且點選選單列當中的 "File" -> "Publish"。



在 Publish Package 的回應視窗當中填入 "Publish Key or PAT"(就是剛剛複製的金鑰),接著就可以點選 "Publish"。



發佈完成後,在 Publish Package 的回應視窗中會顯示 "Package published successfully",然後就可以點選 "Close" 關閉此回應視窗。



再回到 NuGet 的網站,會看到一開始上傳的 Package 會進入到 Unlistes Packages 當中,過一陣子驗證並發佈處理完畢後就會移到 Published Packages 當中。



可以直接點選上傳的那個 NuGet Package 觀看在  NuGet Gallery 的呈現效果,而注意到中間黃底的文字,是說明尚未被 Index 到,可能在 NuGet Gallery 中會暫時搜尋不到。



正式發佈完成時,NuGet 也會發一封通知 Email 給發佈者。



等到 Index 到後,就可以直接在 Visual Studio 的 Nuget 套件管理員搜尋到自己發布的 NuGet Package 了。



而如果後續有再針對此 NuGet Package 做相關的更新的話,版本的版號要比已發佈的大,而呈現的畫面會如下結果。



以上,完成!
 


 


I'm a Microsoft MVP - Developer Technologies (From 2015 ~).
MVP_Logo

I focus on the following topics: Xamarin Technology, Azure, Mobile DevOps, and Microsoft EM+S.

If you want to know more about them, welcome to my website:
https://jamestsai.tw 


相關 Xamarin(.Forms) 推廣活動與課程,請詳見下列 Accupass (活動通) 列表:
https://www.accupass.com/organizer/detail/1910170752158115281580
 

本部落格文章之圖片相關後製處理皆透過 Techsmith 公司 所贊助其授權使用之 "Snagit" 與 "Snagit Editor" 軟體製作。