成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

淺談C#實現在線升級

開發 后端
這里介紹C#實現在線升級,我們該如何解決客戶端的部署與自動升級問題?部署很簡單,只要點擊安裝程序即可,難的在于每當有新版本發布時,能夠實現自動升級。

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

一.C#實現在線升級存在的困難

***,為了查找遠程服務器上的更新,應用程序必須有查詢網絡的途徑,這需要網絡編程、簡單的應用程序與服務器通訊的協議。

第二是下載。下載看起來不需要考慮聯網的問題,但要考慮下載用戶請求的文件,以及在沒有用戶同意時下載大文件。友好的自動更新應用程序將使用剩余的帶寬下載更新。這聽起來簡單,但卻是一個技術難題,幸運的是已經有了解決方法。

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

二.實現軟件自動在線升級的原理

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

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

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

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

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

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

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

7.檢查主程序的狀態,若狀態為活動的,則啟動新的主程序;

8.關閉升級程序,升級完成。 

三.用C#實現在線升級的關鍵步驟

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

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

  1. <?xmlversionxmlversion="1.0"?> 
  2. //xml版本號  
  3. <AutoUpdater> 
  4. <URLAddresURLURLAddresURL="http://192.168.198.113/vbroker/log/"/> 
  5. //升級文件所在服務器端的網址  
  6. <UpdateInfo> 
  7. <UpdateTimeDateUpdateTimeDate="2005-02-02"/> 
  8. //升級文件的更新日期  
  9. <VersionNumVersionNum="1.0.0.1"/> 
  10. //升級文件的版本號  
  11. </UpdateInfo> 
  12. <UpdateFileList> 
  13. //升級文件列表  
  14. <UpdateFileFileNameUpdateFileFileName="aa.txt"/> 
  15. //共有三個文件需升級  
  16. <UpdateFileFileNameUpdateFileFileName="VB40.rar"/> 
  17. <UpdateFileFileNameUpdateFileFileName="VB4-1.CAB"/> 
  18. </UpdateFileList> 
  19. <RestartApp> 
  20. <ReStartAllowReStartAllow="Yes"/> 
  21. //允許重新啟動應用程序  
  22. <AppNameNameAppNameName="TIMS.exe"/> 
  23. //啟動的應用程序名  
  24. </RestartApp> 
  25. </AutoUpdater> 

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

【編輯推薦】

  1. 淺析C# ArrayList
  2. C#對象初始化學習總結
  3. 使用C#正則表達式匹配相關字符串
  4. C#改寫方法學習筆記
  5. 概述C#加框和消框
責任編輯:佚名 來源: 博客園
相關推薦

2009-06-16 10:20:05

多繼承C#

2009-08-20 18:30:33

C# ReaderWr

2011-09-21 10:56:31

C#結構

2009-08-07 11:26:53

C#數組結構

2009-08-12 11:24:25

C# String對象

2009-08-31 09:37:09

C# Employee

2009-08-19 17:12:18

C# Connecti

2009-08-26 13:15:38

C#選擇控制

2009-08-20 10:24:52

C#開發WinForm

2009-08-14 17:58:05

C#接口方法

2009-08-25 16:16:43

C# oledbcon

2009-08-26 15:46:01

C#匿名類型

2009-09-02 15:41:21

C# HTTPWebR

2009-08-06 15:30:23

C#類型系統

2011-03-29 09:14:49

Dispose模式C#

2009-07-22 17:15:04

C#實現

2009-08-10 10:04:25

C#抽象類C#接口

2009-08-24 17:24:28

C#創建XML文檔

2009-08-25 13:26:49

C#編寫asp+

2009-08-28 15:58:54

C#窗體里調用
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 亚洲国产一区在线 | 欧美久久久久久 | 人人cao | 久久33| 天天操夜夜操 | 黄色网址在线播放 | 亚洲人的av | 91免费版在线 | 亚洲精品国产偷自在线观看 | 成人精品国产一区二区4080 | 亚洲毛片在线观看 | 国产成人精品视频在线观看 | 久在线视频播放免费视频 | 欧美 日韩 国产 成人 在线 91 | 中文字幕成人av | 国产精品久久欧美久久一区 | 国产精品久久久久久久久 | 国产999精品久久久久久 | 中文字幕伊人 | 久草网在线视频 | 日本福利在线观看 | 精品久久99 | 亚洲乱码一区二区三区在线观看 | 亚洲国产午夜 | 天堂在线www | 日韩欧美国产不卡 | 1级黄色大片 | 国产一区二区三区四区五区加勒比 | 欧美激情一区 | 亚洲精品视频播放 | 日本网站免费在线观看 | 亚洲成人日韩 | 免费久久精品视频 | 日韩欧美一区二区三区 | 欧美成人精品一区二区男人看 | 亚洲精品中文字幕 | 精品视频一区二区三区在线观看 | 国产日韩欧美二区 | 91精品国产色综合久久 | 久久久久国产一区二区三区 | 亚洲成av人片在线观看无码 |