在本機上建立 NuGet 儲存庫

最近的一個大專案剛好有機會重新打造基礎建設,於是便將常用與各種擴充功能做成套件發佈到內部的 NuGet 儲存庫,但有一個問題是因為套件上傳後就不應該再重新佈署同一個版本,如果新的套件開發初期有頻繁的設計變更會經常引發 breaking change,造成版本號增加的很快,即便不是設計變更,一有小 bug 或是小變更就急著跑流程發新版也是很浪費時間。

所以就有了一個想法,如果能在本機上建立 NuGet 套件儲存庫,這樣就能先在本機上試用確認設計適當且品質夠好,再將正式版發佈到真正的 NuGet 儲存庫上。

在本機上建立 NuGet 儲存庫

其實很簡單,用 Visual Studio 開發的話幾個步驟就好了:

  • 打開 NuGet Package 管理介面
  • 依照下圖步驟指定資料夾
  • 最後只要將包好的 *.nupkg 檔案放到資料夾中,就能從 NuGet Package 管理介面下載了。

NuGet 下載後的儲存位置

如果從本機開發,版號部分可以後綴個 -local-v1 (這部分隨變加後綴是因為是本機臨時版不會真的上線,正式版要有嚴謹的定版規則),這樣就可以頻繁修改直到確定要發行後再上線,但這樣缺點就是會留一大堆臨時版的資料在本機上,讓人覺得很礙眼。

這時候就可以從 %USERPROFILE%\.nuget\packages (我這邊完整路徑是 C:\Users\{user}\.nuget\packages) 中找到下載來的套件,可以開發完後順手清一下臨時版的資料,免得留一堆垃圾佔空間。

其實一開始是每個臨時版都是用一樣的版號,然後再手動到下載資料夾中清掉舊的重新下載一次,但是畢竟不是正常的操作方式,而且常常這樣做也是很繁瑣,所以還是用不同的版號比較好,等正式版要上前再去清垃圾就好了,另一方面也能養成不重覆發行相同版本套件的正確習慣。