網路上能找了幾篇來參考:
- C#读取exe版本号
- c# 基於FTP協議的簡易軟件自動升級進程 (透過FTP下載自動解壓縮檔)
- [.Net] WinForm 自動更新 (搭配WebApi,還有Part2檢查已存在Process)
- C# 软件版本自动更新策略 (文字描述很清楚)
- C#实现自动升级(附源码) (非常詳細的規劃)
- https://github.com/ravibpatel/AutoUpdater.NET (開源專案,不喜歡ClickOnce可用)
- ZipFileExtensions.ExtractToFile 方法 (如何解壓縮 & 覆寫檔案)
最後整理出一些重點符合需求也能兼顧效能與彈性,我的版本:
- 更新檔直接放共享網路。(不用架設額外 Web 或 FTP,大家也都能存取)
- 更新檔封裝為一個壓縮檔,縮短下載(複製)時間。
- 放置一個純文字文件紀錄目前版本供本地端讀取比較。
- 更新時不需出現確認視窗,有更新就直接執行。(ClickOnce會出現)
- 需於主程式啟動判斷更新,並可定時檢查與手動執行。
簡單畫個圖 (包含專案佈署流程):