標籤:

WinForm通用自動更新器AutoUpdater項目實戰

一、項目背景介紹

最近單位開發一個項目,其中需要用到自動升級功能。因為自動升級是一個比較常用的功能,可能會在很多程序中用到,於是,我就想寫一個自動升級的組件,在應用程序中,只需要引用這個自動升級組件,並添加少量代碼,即可實現自動升級功能。因為我們的程序中可能包含多個類型的文件,比如exe、dll、 config、xml、bat等等自定義格式的後綴名文件,所以要支持多文件類型的更新。

本期同樣帶給大家分享的是阿笨在實際工作中遇到真實項目場景,請跟隨阿笨的視角去如何開發實現WinForm通用自動更新器AutoUpdater,如果您對本期的教程內容感興趣,那麼請允許讓阿笨帶著大家一起學習吧!

廢話不多說,直接上乾貨,我們不生產乾貨,我們只是乾貨的搬運工。

你學會了從1數到10嗎?

三、項目實現原理圖

3.1、WinForm通用自動更新器AutoUpdater原理圖

實現思路:在遠程IIS自動升級伺服器上放一個XML文件,裡面記錄了軟體版本號,發布日期,要更新的DLL等一些信息,如果發現本地軟體的版本號和伺服器上的不相等,則替換掉本地的文件。

原理圖

3.2、那麼我們今天需要解決涉及到的核心技術問題可以總結為下面的一句話:

如何實現通過基於HTTP協議方式進行遠程IIS虛擬目錄文件下載?

3.3、問:WinForm通用自動更新器AutoUpdater是以什麼方式進行文件下載的呢?

支持FTP協議和HTTP兩種協議方式,推薦使用HTTP方式。

四、涉及覆蓋的知識點

兩個獨立的Winform程序之間如何傳遞和接收參數;

如何通過通過HTTP協議進行遠程站點文件下載;

IIS如何搭建自動升級虛擬站點;

如何配置IIS使其支持自定義文件後綴名格式的文件下載,比如.apk、.config、.bat、.pdb等等;

AutoUpdateXmlBuilder自動升級器打包工具的使用;

等等......

五、源代碼在線演示和解讀

推薦閱讀:

ADO.NET的SqlParameter(String,?Object)的構造函數第二個參數不能為0?
2.0、3.5、4.0這幾個版本的 .NET Framework都需要安裝嗎?
.NET培訓哪家好?
學.net有前途嗎?
是不是 好無聊?

TAG:C | NET | Winform |