CAutoupdater通用自動公升級元件原始碼

2021-08-27 09:17:50 字數 3651 閱讀 8052

cautoupdater通用自動公升級元件

c/s構的特點是能充分發揮客戶端的處理能力,很多任務作可以由客戶端處理後再提交給伺服器,對應的優點就是客戶端響應速度快模式客戶端以其強大的功能,豐富的表現力受到相當大部分使用者的青睞,但是客戶端佈署,維護公升級的成本卻是非常的高的。

c/s客戶端需要安裝專用的客戶端軟體及執行環境。首先涉及到安裝的工作量,其次任何一台電腦出問題,如病毒、硬體損壞,都需要進行安裝或維護。特別是有很多分部或專賣店的情況,不是工作量的問題,而是路程的問題。還有,系統軟體公升級時,每一台客戶機需要重新安裝,其維護和公升級成本非常高。

cautoupdater元件就是為了解決

c/s在維護公升級方面的問題而存在的,本元件可以快速建立公升級部署應用,完全控制整個公升級部署過程,全功能的、快速、易於使用

,設立發布你的客戶端應用。

元件為你的軟體整合穩定

/高效的自動公升級功能,是本公升級元件的宗旨。

無需特被的伺服器,傳統的web

服務即可,如

iis等。伺服器部署最新版的軟體檔案(檔案列表儲存在乙個

xml檔案中),

cautoupdater

元件對比分析伺服器和客戶端的

xml對比配置檔案,不同就更新。

cautoupdater元件採用

c#語言編寫,可應用於目前大多流行語言開發的軟體之中,不依賴任何類庫,穩定,高效。

圖2.1.1.1

不必關心當前使用的版本

圖2.1.1.2

對比分析服務端與客戶端使用的軟體版本

要使用cautoupdater

元件必須部署服務端,服務端的部署很簡單,在這兒我們選擇傳統的

iis進行部署。假設我們公升級的相關檔案放在服務端的d盤

cautoupdater

資料夾下,開啟

iis,新建乙個**,將其物理路徑指向:d:\cautoupdater,具體iis

圖2.2.1autoupdateservice.xml檔案

通過autoupdateservice.xml檔案可以看到,目前我們新增了乙個待更新的檔案rdiframework.net.exe

,其版本號通過

lastver

配置項提供,檔案大小通過

size

配置項提供,還有乙個配置項

needrestart

,是否需要重啟應用程式,意思是說,更新本檔案後,主程式是否需要重新啟動。

url

客戶端是如何判斷當前是否需要更新呢?這兒主要是通過lastver

(最新的版本號)與

size

(檔案大小)來判斷,兩者只要取其一即可,在

cautoupdater

元件中是兩者同時取,只要客戶端對應檔案與服務端對應檔案的最新版本號或檔案大小不一樣,則更新。下面我們來看一下如何自動生成服務端的配置檔案(autoupdateservice.xml),如下圖所示:

圖2.2.2.1cautoupdater

服務端配置

在圖2.2.2.1

中,配置檔案的名稱預設不允許修改,服務端位址就是我們配置

iis時的

urlhttp://localhost:8010/,服務端目錄就是iis

對應url

位址所在的實體地址,在我的例項中是:d:\cautoupdater,在介面下方的檔案列表中,我們可以新增需要更新的檔案,對於選擇錯誤的檔案,也可以對其選中後移除,可以看到檔案列表的第一列為「重啟?」,如果選中,則表示客戶端公升級後,需要重啟客戶端主程式,以完成更新,這需要根據實際的專案要求做相應的設定,沒有定論。單擊「生成」按鈕,即可自動生成服務端的配置檔案autoupdateservice.xml,同時把檔案列表中的檔案拷貝到指定的「服務端目錄」中去。這樣,就完成了服務端的配置。

同時需要說明的時,同時要修改cautoupdater專案檔案中的「autoupdater.config」檔案,此檔案例項設定如下:

其中的:http://localhost:8010/autoupdateservice.xml就是公升級伺服器上公升級配置檔案的url

位址。在客戶端中也要包含這個檔案,以讓客戶可以通過這個檔案中配置的公升級伺服器的位址,找到待公升級的檔案。

客戶端的配置非常簡單,只需引用「autoupdater.dll」檔案,然後在需要的位置(一般是在程式啟動時檢查更新,也可讓使用者手動檢查更新),我一般都是在程式啟動時(在program.cs檔案的

main

#region check and download new version program

bool bhaserror = false;

iautoupdater autoupdater = new autoupdater();

trycatch (webexception ex)

catch (xmlexception ex)

catch (notsupportedexception ex)

catch (argumentexception ex)

catch (exception ex)

finally

catch (exception ex)}}

#endregion

客戶端啟動時,檢查若有公升級,就會彈出下面的視窗。

出處:

email: [email protected][email protected]

qq 交流:406590790

平台部落格: 【csdn】

【cnblogs】

如有問題或建議,請多多賜教!

mysql 自增長通用單號生成

平時工作中我們經常會生成各種單號,大部分的單號都是日期加上自增長的序列如 vc20181115001,vc201811151525001,常用格式 字母 yyyymmdd 001,字母 yyyymmddhhmmss 001等等。我們可以使用mysql解決這個問題,使用儲存過程呼叫,適合普通單號生成,...

使用VC自繪美化通用控制項

在vc60中新建乙個對話方塊工程,新增乙個新類,根據你要美化的控制項選擇對應的基類,如我要美化static控制項,就選擇cstatic做為基類,新類名為cstaticex。在新類中新增兩個類成員變數,乙個為控制項的背景色,乙個為文字的顏色 private colorref m backcolor c...

FPS遊戲通用準星修正實現自瞄

fps遊戲內的十字瞄準視角其實就是乙個視角攝像機這個應該不難理解吧,如何調整攝像機的視角就要用到乙個叫 姿態角 euler角 的資料,即 yaw pitch roll。這3個值的解釋如下 pitch是圍繞x軸旋轉,也叫做俯仰角 yaw是圍繞y軸旋轉,也叫偏航角 roll是圍繞z軸旋轉,也叫翻滾角 用...