在架設 Private NuGet Server 完畢後,
接下來就是要將專案包成 package 推到內部 NuGet Server 囉。
我希望做到的是透過 CI Server Trigger 自動化這一連串的打包與上傳。
打包相關的文章可以參考 建立並發布你的 NuGet 套件 會很有幫助的。
在 VSTS 上的 Add Task 中有提供 NuGet 相關。
試著用它來 pack .csproj,但是一直無法 -Properties 這個參數把相關資訊包起來。
再來能想到的方法就是建立 .nuspec ,於是找到了 NuGetPackageTemplate.vsix 來做這件事情。
安裝完畢之後建立一個 nuget package template project 按下 Build 會失敗,記得看 Readme step 做即可。
Build 會失敗由於 .csproj 中有 post-build event 。
在 NuGet Package Manager 中搜尋 PubComp.NuGetPack 並下載。
把下載下來的 NuGet.exe & NuGetPack.exe 放至 Solution 下的 .NuGetPack 資料夾內。
package 的 metadata 都在 NuGetPack.config 做設定。
把 VersionInfo.cs 的版號設置為 1.0.x 讓它每次產出的版號會遞增,
再來按著 Alt + 拖曳把這個檔案拖至目標打包專案下的 Properties。
接著移除原本在 AssemblyInfo.cs 的 AssemblyVersion 在 Build 階段才不會出現 duplicate version error。
Build 成功後應該能夠在對應的組態目錄下找到 .nupkg。
可以利用 NuGet Package Explorer 來檢查相關 metadata 是否正確。
下一篇就來介紹透過 VSTS 整合把產出的 .nupkg 上傳至我們透過 ProGet 架設的私人 NuGet Server 上囉。