基于DotNetty實現自動發布 - 背景篇
故事背景
小公司,單體項目,接口和頁面都在一起,生產和測試環境都是 Windows 服務器和 IIS, 本地編譯完成,把相關的頁面和程序集拷貝到服務器上,尤其是涉及到多個頁面,一個個頁面找到對應的位置,再到服務器上找到對應的位置拷貝進去,甚至還有備份等操作,不勝其煩,因為歷史遺留原因,項目是基于.net4.5 開發的,項目也比較大,基本不可能重寫,也不可能每次都全量發布,文件很大,很慢,至于在服務器編譯更不考慮,測試服務器內存只有 4G,跑了好幾個項目,所有萌生了自己開發一個自動發布工具的想法。
總體設想
- 通過 git 獲取自上次發布以來修改的代碼, 解析出需要發布的文件. (頁面或 dll 等)
- 封裝待發布的文件為 DeployFileInfo, 記錄文件類型,文件路徑,和在服務器的文件路徑等
- 把所有文件打包為 zip, 通過 DotNetty 發送到服務器
- 服務器解析 zip, 執行備份, 替換發布文件, 記錄發布歷史等
涉及的技術棧
- .NET 8.0
- DotNetty
- WPF
- HandyControl
- CommunityToolkit.Mvvm
- Windows Service
- IIS
- Git
- LibGit2Sharp
- SQLite
效果圖

代碼倉庫
項目暫且就叫
OpenDeploy吧
-
自動發布工具基于 VS2022 + .NET 8.0 + WPF + DotNetty
-
待測試的單體 Web 項目是 ASP.NET 4.8 的包含 MVC,WebApi,Webform 等
-
歡迎大家拍磚,Star
計劃
一點點的實現構想中的內容,加油

浙公網安備 33010602011771號