Microsoft Application Blocks for .net之Updater學習筆記

來源:互聯網
上載者:User

原理:
在服務端存放所有的版本內容,在用戶端只存放最新的版本,根據版本資訊來進行自動的更新。

相關配置:
服務端需要設定一個虛擬目錄,也就是說要開放80連接埠,然後將不同版本的程式放在虛擬目錄下不同的檔案夾中。例如:虛擬目錄中有"1.0.0.0,"1.1.0.1","1.1.1.8"三個目錄,那麼在其中就存放著三個不同版本的程式。
根目錄下面的檔案:
1、serverManifest.xml檔案:裡面存放當前最新版本所在的路徑,每次需要更新的檔案名稱以及相關的認證(加密解密用)。
2、PublilcKey.xml和PrivateKey.xml,:裡面有根據相關資訊產生的RSA演算法的密鑰,用來進行使用者的認證和檔案的加密。

用戶端存放檔案的檔案夾中有一個子件夾,檔案夾的名稱就是最後下載的版本的名稱,例如:"1.1.0.0",在其中存放著需要更新的程式檔案,在根資料夾中有以下的幾個檔案:
1、AppStart.exe->用來啟動自動更新
2、Appstart.exe.config->裡面有相關的配置資訊
A、程式檔案存放的位置
B、當前最新的版本號碼
C、更新程式的名字
D、最後更新的時間
3、每次更新的記錄檔,記錄檔的起名方式”UpdateLog+年月日時分秒”

運行步驟:
1、用戶端運行程式,該程式是通過自動更新程式啟動的。
2、自動更新程式會檢查網路是否連通。
3、如果網路可用,程式會檢測當前的程式的版本和伺服器上最新的版本是否一樣,如果一樣就不進行更新操作。
4、如果本地的程式版本號碼小於伺服器的版本,那麼會彈出對話方塊,提示使用者當前伺服器上有更新的版本,問使用者是否馬上進行更新。
5、如果使用者選擇開始更新,那麼首先用戶端要與服務端進行認證
6、在認證通過之後,從服務端先下載serverManifest.xml檔案,從其中找到需要更新的檔案的位置和名字,並進行認證的驗證。
7、認證通過之後,在本地建立“Newfile”目錄,將需要下載的檔案先下載到這個臨時目錄裡面。
8、待下載完成之後,以新的版本號碼來重新命名檔案夾,並更改本地的設定檔
9、提示使用者重新啟動程式,確認後刪除舊版本的檔案更新結束。
值得借鑒的地方:
1、所有的操作都記錄到記錄檔中,不管成功與否,我們都可以看到我們的操作產生了什麼樣的結果。
2、很多資訊都使用xml檔案來存放,方便。
3、在進行更新的時候充分的進行了使用者的驗證和檔案的驗證,保證了程式的安全。
4、對異常的情況進行了充分的處理。例如:當一個使用者自己改變了自己本地的版本資訊,使得本地的版本比伺服器還要高的時候,程式會自動將本地所有的檔案刪除。還有當操作發生了錯誤的時候,會將錯誤也都寫到記錄檔中。

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.