使用NuGet套件作為佈署格式
除了開發階段容易重複使用其功能,也能有效的管理其版本與相依性問題,更可以架設一個私有的NuGet Server作為內部用來佈署的套件來源。
當開發階段需要使用到套件包含的的功能,通常就是要將套件中的組件加入參考,但如果套件是使用zip格式進行封裝,並沒有辦法可以有效的使用,只有將全部套件內容放置於約定共用目錄中,才可以讓開發階段參考使用,這樣的作法其實在開發階段會引起不少的副作用。
架構開發的過程中,意識到其實.NET Core中有很多功能或做法都是依賴著NuGet套件,如果用來佈署的套件格式也使用這種格式,其實就直接解決了開發階段的問題,而額外需要做的只是架設一個私有的NuGet Server。
實作方式
為了可以在開發階段進行參考,因此格式與內容基本上與NuGet套件是一致的,不一樣的部分是加入了一個名為"platform"的目錄,在建置過程中會將專案參考的相關組件,一起加入這個目錄中,並在這個目錄中加入了一個名為app.manifest的檔案,這個檔案就紀錄了此套件載入時的相關資訊。
原本的套件來源是應用程式中的Packages目錄,系統啟動時會使用這個目錄中的.nupkg進行載入作業,但後來在內部專案開發時想到,如果可以直接指定使用NuGet Server的套件作為來源,這樣在測試上或是發布新版本給客戶端應該可以做一些控制或稽核的流程,因此就將這種載入的方式也加入到實作中。