只有累積,沒有奇蹟

2019年2月9日 星期六

[Nuget] 使用 NuGet Package Explorer 製作 Nuget 套件

問題 
在上一篇介紹了如何架設公司內部 nuger server,架設完畢後會使用 nuget push 指令將開發完 Library 上傳到公司內部 nuget server 上,但每次都要透過手動打指令 push 難道沒有更快的方法了嗎 ? 今天就要來介紹一套好用的工具 Nuget Package Explorer 可以省去打指令的動作,透過 GUI 的介面將開發好的 Library 上傳到共用或是私人架設的 nuget server 上面


Nuget Package Explorer 
NuGet Package Explorer (NPE) 是一個好用的 GUI 應用程式,透過此應用程式快速打包成 nuget package 檔佈署到 nuget server 上面,並定義相關 package 版本資訊,讓需要使用的專案引用下載,從 官方網站 介紹得知,可以透過 Microsoft Store 與 Chocolatey 進行安裝的動作,下面分別針對兩種安裝方式簡單介紹

使用 Microsoft Store 安裝
安裝網址 : Microsoft Store 
打開連結後按取得 > 下載 > 進行安裝 > 啟動
使用 Chocolatey 安裝
透過 windows 安裝神器來安裝,步驟如下
  • 使用 admin 權限開啟 powershell
  • 輸入指令安裝 :  
    choco install nugetpackageexplorer
新增 Package  
透過以下步驟說明如何使用 Nuget Package Explorer 佈署至 nuget server
Step 1 : 首先開啟 Nuget Package Explorer > 選擇 create a new package
Step 2 : 開啟後畫面主要分為兩區塊
  • package metadata : 說明此 package 檔案資訊,ex : 版本、package 說明...etc 
  • package contents : 為要上傳 package 內容,ex : dll, json 相關檔案 
Step 3 : 接著先設定 metadata 內容,按下編輯,更新 package 名稱、內容、版號資訊、開發者,更新完成後在綠色勾勾存檔。
Step 4 : metadata 設定完成後,接著在右方區塊按滑鼠右鍵新增 Library folder,add exist file 在將此 package 需要的檔案新增至 content 區塊,也可以使用檔案拖拉的方式新增檔案,可參考以下 gif 檔示範

佈署至 Nuget server 
Step 1 : 點選 File > save 檔案才可進行發布的動作,這裡可以看到已經將上述動作打包成 nuget package 檔案 (.nupkg)
Step 2 : 點選 File > publish > 輸入要佈署的 nuget server url、與 api key 等資訊,這裡是佈署到我 local 環境測試的 Nuget server,在按下 publish 即可上傳到指定的 nuget server,佈署成功會顯示 success 文字 (黃色區塊)

確認新增的 Package 
透過以上步驟已成功上傳到 nuget server,接著來確認其他專案是否可以正常引用
Step 1 : 在 Visual Studio 加入 local 端的 nuget server 名為 provateNugetServer
Step 2 : 在 nuget manage 右上角 Package source 選擇剛剛加入的 privateNugetServer,左方區塊就會出現剛剛成功上傳的 package TestSDK,右方區塊則顯示上傳時所輸入的 metadata 內容資訊,ex : 開發者、版號、上傳時間與 package 內容說明 
後續動作就與一般使用方式相同不在詳細說明,確認上傳成功 !!!

心得
工具整體上操作不難,透過幾個簡單的步驟用手動的方式將共用的 library 上傳至 nuget server,但如果每次更新都要手動方式更新就稍嫌麻煩了,佈署與每次 build 完加版號這類的動作可以透過 Jenkins 工具完成,才可以省下更多時間與整體流程最佳化的動作。

參考
NuGetPackageExplorer

0 意見:

張貼留言

Copyright © m@rcus 學習筆記 | Powered by Blogger

Design by Anders Noren | Blogger Theme by NewBloggerThemes.com