公升級的原理有好幾個,首先無非是將現有版本與最新版本作比較,發現最新的則提示使用者是否公升級。當然也有人用其它屬性比較的,例如:檔案大小,或者更新日期。而實現的方法呢?
在.net時代,我們就有了更多的選擇,可以使用webrequest,也可以使用web service。在這裡我們將用web service來實現軟體的自動公升級。實現原理:在web service中實現乙個getver的webmethod方法,其作用是獲取當前的最新版本。然後將現在版本與最新版本比較,如果有新版本,則進行公升級。步驟如下:
1.準備乙個作為公升級模板用的xml檔案(update.xml)。
<?xml version="view code1.0" encoding="
utf-8
" ?>
1.0.1818.42821
修正一些bug"4
" sourcepath="
./update/
">
"city.xml
" size="">
"" size="">
"interop.shdocvw.dll
" size="">
"citys.xml
" size="">
2.web service的getver方法。
[webmethod(description="3.web service的getupdatedata方法。取得更新版本")]
public
string
getver()
[webmethod(description="")]view code[soapheader(
"sheader")]
public
system.xml.xmldocument getupdatedata()
return
doc;
}
4.在客戶端進行的工作。
首先引用此web service,例如命名為:websvs
string nver = start.getservice.getver();
在本**中start.getservice是websvs的乙個static例項。
首先檢查版本,將結果與當前版本進行比較,如果為新版本則執行update方法。
void5.update.exe的內容update()
privateview codevoid form1_load(object
sender, system.eventargs e)
}xmldocument doc = new
xmldocument();
\update.xml");
xmlelement root =doc.documentelement;
xmlnode updatenode = root.selectsinglenode("
filelist");
string path = updatenode.attributes["
sourcepath
"].value;
int count = int.parse(updatenode.attributes["
count
"].value);
for(int i=0;i)
label1.text = "
更新完成";
\update.xml");
label1.text = "
正在重新啟動應用程式...";
system.diagnostics.process.start(""
); close();
}
這個**也很容易懂,首先就是找到主程序,如果沒有關閉,則用process.kill()來關閉主程式。然後則用乙個xmldocument來load程式生成的update.xml檔案。用xml檔案裡指定的路徑和檔名來生成指定的檔案,在這之前先前已經存在的檔案刪除。更新完畢後,則重新啟動主應用程式。這樣更新就完成了。
總結:從這個例項看來,web service的工作是很簡單的,也是很容易實現的。好好的使用web service能夠為我們的程式帶來很多新的,強的功能。總而言之,.net是易用的,強大的語言。
參考文章
在winform中使用web service來實現軟體自動公升級
C S程式自動公升級
c s程式自動公升級是乙個很重要的功能,原理其實很簡單,一般包含兩個程式乙個是主程式,也就是除了公升級功能以外的程式,另乙個就是公升級程式,常見的360,金山安全衛士都是這樣。一般服務端會有乙個配置檔案包含最新更新的檔案資訊的配置檔案,當然這些更新資訊也可以存到資料庫,或者其他地方。客戶端 也就是需...
CS架構客戶端軟體公升級方案
目的 概念 u 整包公升級 軟體功能進行了大範圍的變更,主版本號發生變化,客戶端需要重新安裝。u 補丁包公升級 軟體修復部分bug,功能進行了小範圍調整或變更。u 檔案公升級 軟體的個別檔案進行了細微的調整或bug修復,為最小粒度軟體公升級。框架 客戶端主要由公升級管理主程式和提供公升級功能的底層支...
部署Zabbix自動化監控軟體
zabbix自動監控軟體,基於多中監控機制,支援分布式監控 zabbix簡介 zabbix是乙個高度整合的監控方案 可以實現企業級的開源分布式監控 zabbix通過c s模式採集監控資料 zabbix通過b s模式實現web管理 16k 快取php生成的頁面內容,8個16k fastcgi buff...