溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

C#怎么實現(xiàn)在線升級

發(fā)布時間:2021-07-16 08:06:12 來源:億速云 閱讀:213 作者:chen 欄目:編程語言

這篇文章主要介紹“C#怎么實現(xiàn)在線升級”,在日常操作中,相信很多人在C#怎么實現(xiàn)在線升級問題上存在疑惑,小編查閱了各式資料,整理出簡單好用的操作方法,希望對大家解答”C#怎么實現(xiàn)在線升級”的疑惑有所幫助!接下來,請跟著小編一起來學(xué)習(xí)吧!

長期以來,廣大程序員為到底是使用Client/Server,還是使用Browser/Server結(jié)構(gòu)爭論不休,在這些爭論當(dāng)中,C/S結(jié)構(gòu)的程序可維護(hù)性差,布置困難,升級不方便,維護(hù)成本高就是一個相當(dāng)重要的因素。有很多企業(yè)用戶就是因為這個原因而放棄使用C/S。然而當(dāng)一個應(yīng)用必須要使用C/S結(jié)構(gòu)才能很好的實現(xiàn)其功能的時候,我們該如何解決客戶端的部署與自動升級問題?部署很簡單,只要點擊安裝程序即可,難的在于每當(dāng)有新版本發(fā)布時,能夠?qū)崿F(xiàn)自動升級?,F(xiàn)在好了,我們的目標(biāo)很簡單,我們希望開發(fā)一個與具體應(yīng)用無關(guān)的能夠復(fù)用的自動升級系統(tǒng)。下面我為大家提供了一套可復(fù)用的用C#實現(xiàn)在線升級。

一.C#實現(xiàn)在線升級存在的困難

***,為了查找遠(yuǎn)程服務(wù)器上的更新,應(yīng)用程序必須有查詢網(wǎng)絡(luò)的途徑,這需要網(wǎng)絡(luò)編程、簡單的應(yīng)用程序與服務(wù)器通訊的協(xié)議。

第二是下載。下載看起來不需要考慮聯(lián)網(wǎng)的問題,但要考慮下載用戶請求的文件,以及在沒有用戶同意時下載大文件。友好的自動更新應(yīng)用程序?qū)⑹褂檬S嗟膸捪螺d更新。這聽起來簡單,但卻是一個技術(shù)難題,幸運的是已經(jīng)有了解決方法。

第三個考慮因素是使用新版應(yīng)用程序更換原應(yīng)用程序的過程。這個問題比較有趣,因為它要求代碼運行時將自己從系統(tǒng)刪除,有多種辦法可以實現(xiàn)該功能,本文程序主要通過比較新舊版本的日期號來實現(xiàn)替換新版本應(yīng)用程序的功能。

二.實現(xiàn)軟件自動在線升級的原理

寫兩個程序,一個是主程序;一個是升級程序;所有升級任務(wù)都由升級程序完成。

1.啟動升級程序,升級程序連接到網(wǎng)站,下載新的主程序(當(dāng)然還包括支持的庫文件、XML配置文檔等)到臨時文件夾;

2.升級程序獲取服務(wù)器端XML配置文件中新版本程序的更新日期或版本號或文件大小;

3.升級程序獲取原有客戶端應(yīng)用程序的最近一次更新日期或版本號或文件大小,兩者進(jìn)行比較;如果發(fā)現(xiàn)升級程序的日期大于原有程序的***日期,則提示用戶是否升級;或者是采用將現(xiàn)有版本與***版本作比較,發(fā)現(xiàn)***的則提示用戶是否升級;也有人用其它屬性如文件大小進(jìn)行比較,發(fā)現(xiàn)升級程序的文件大小大于舊版本的程序的大小則提示用戶升級。本文主要采用比較新舊版本更新日期號來提示用戶升級。

4.如果用戶選擇升級,則獲取下載文件列表,開始進(jìn)行批量下載文檔;

5.升級程序檢測舊的主程序是否活動,若活動則關(guān)閉舊的主程序;

6.刪除舊的主程序,拷貝臨時文件夾中的文件到相應(yīng)的位置;

7.檢查主程序的狀態(tài),若狀態(tài)為活動的,則啟動新的主程序;

8.關(guān)閉升級程序,升級完成。 

三.用C#實現(xiàn)在線升級的關(guān)鍵步驟

這里我主要使用日期信息來檢測是否需要下載升級版本。

準(zhǔn)備一個XML配置文件名稱為AutoUpdater.xml,作用是作為一個升級用的模板,顯示需要升級的信息。

<?xmlversionxmlversion="1.0"?> //xml版本號  <AutoUpdater> <URLAddresURLURLAddresURL="http://192.168.198.113/vbroker/log/"/> //升級文件所在服務(wù)器端的網(wǎng)址  <UpdateInfo> <UpdateTimeDateUpdateTimeDate="2005-02-02"/> //升級文件的更新日期  <VersionNumVersionNum="1.0.0.1"/> //升級文件的版本號  </UpdateInfo> <UpdateFileList> //升級文件列表  <UpdateFileFileNameUpdateFileFileName="aa.txt"/> //共有三個文件需升級  <UpdateFileFileNameUpdateFileFileName="VB40.rar"/> <UpdateFileFileNameUpdateFileFileName="VB4-1.CAB"/> </UpdateFileList> <RestartApp> <ReStartAllowReStartAllow="Yes"/> //允許重新啟動應(yīng)用程序  <AppNameNameAppNameName="TIMS.exe"/> //啟動的應(yīng)用程序名  </RestartApp> </AutoUpdater>

從以上XML文檔中可以得知升級文檔所在服務(wù)器端的地址、升級文檔的更新日期、需要升級的文件列表,其中共有三個文件需升級:aa.txt、VB40.rar、VB4-1.CAB。以及是否允許重新啟動應(yīng)用程序和重新啟動的應(yīng)用程序名。

到此,關(guān)于“C#怎么實現(xiàn)在線升級”的學(xué)習(xí)就結(jié)束了,希望能夠解決大家的疑惑。理論與實踐的搭配能更好的幫助大家學(xué)習(xí),快去試試吧!若想繼續(xù)學(xué)習(xí)更多相關(guān)知識,請繼續(xù)關(guān)注億速云網(wǎng)站,小編會繼續(xù)努力為大家?guī)砀鄬嵱玫奈恼拢?/p>

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI