利用Tiger Installer實(shí)現(xiàn)自動(dòng)升級(jí)功能_第1頁
利用Tiger Installer實(shí)現(xiàn)自動(dòng)升級(jí)功能_第2頁
利用Tiger Installer實(shí)現(xiàn)自動(dòng)升級(jí)功能_第3頁
利用Tiger Installer實(shí)現(xiàn)自動(dòng)升級(jí)功能_第4頁
利用Tiger Installer實(shí)現(xiàn)自動(dòng)升級(jí)功能_第5頁
已閱讀5頁,還剩2頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡介

利用TigerInstaller實(shí)現(xiàn)自動(dòng)升級(jí)功能理論篇軟件的自動(dòng)升級(jí)功能是一個(gè)非常實(shí)用的技術(shù)。對于C/S系統(tǒng)每次系統(tǒng)修改都要逐一升級(jí)客戶端,這是一個(gè)繁瑣的讓人痛恨的工作,也是C/S系統(tǒng)經(jīng)常被人抨擊的一個(gè)痛處。即便是三層系統(tǒng),在系統(tǒng)修改的時(shí)候也免不了要更新客戶端。對于其他的單機(jī)軟件,在現(xiàn)在互聯(lián)網(wǎng)普及的環(huán)境下給軟件增加一個(gè)通過互聯(lián)網(wǎng)自動(dòng)升級(jí)的功能也能給用戶帶來便利,同時(shí)提升軟件的檔次。要實(shí)現(xiàn)自動(dòng)升級(jí)的功能在技術(shù)上有什么要求呢?第一,需要制作升級(jí)包。這個(gè)升級(jí)包還需要功能全面,簡單的系統(tǒng)一般是直接更新一個(gè)客戶端程序就可以了,但是實(shí)際復(fù)雜一點(diǎn)的系統(tǒng)都可能包含多個(gè)文件、注冊表、ActiveX組件、COM/COM+組件、BDE/ODBC別名、升級(jí)的時(shí)候還可能要執(zhí)行一些程序。這是自動(dòng)升級(jí)功能中最復(fù)雜的部分,但是現(xiàn)在TigerInstaller已經(jīng)支持生成功能完備的升級(jí)包了,而且這些升級(jí)具有可以和原來的安裝融合在一起的功能,也就是說無論裝了多少個(gè)/次升級(jí)包,卸載的時(shí)候都可以一次過卸載所有的對象,不需要對升級(jí)包進(jìn)行逐一卸載。具體操作請參閱TigerInstaller的幫助文件。第二,需要從服務(wù)器獲得最新的版本,下載升級(jí)包。這個(gè)有很多的實(shí)現(xiàn)方案,可以通過服務(wù)器的共享文件夾、FTP服務(wù)器、WEB服務(wù)器、或者自己寫的服務(wù)器。我認(rèn)為實(shí)用WEB服務(wù)器是最佳選擇,管理方便,功能強(qiáng)大,我們可以通過腳本實(shí)現(xiàn)比如預(yù)定時(shí)間發(fā)布升級(jí)包、根據(jù)客戶端的版本發(fā)布不同的升級(jí)包等功能,在后面的例子將會(huì)用簡單的ASP腳本實(shí)現(xiàn)上面的功能。第三,更新主程序的問題。在自動(dòng)升級(jí)的時(shí)候一般都是在主程序里獲得最新版本并啟動(dòng)升級(jí)包進(jìn)行升級(jí)。這樣會(huì)帶來一個(gè)問題,就是如何避免由于主程序在運(yùn)行的時(shí)候不能更新造成的升級(jí)失敗。在這里我使用了一個(gè)簡單的辦法,在啟動(dòng)升級(jí)包的時(shí)候把主程序的進(jìn)程ID傳給升級(jí)包,這樣升級(jí)包就可以根據(jù)這個(gè)進(jìn)程ID獲得主程序的進(jìn)程句柄,使用WaitforsingleObject函數(shù)等待主程序退出再執(zhí)行升級(jí)操作,這樣就不會(huì)有無法更新主程序的問題了。根據(jù)上面的技術(shù)分析,第一點(diǎn)已經(jīng)由TigerInstaller實(shí)現(xiàn)了,第三點(diǎn)中升級(jí)包中根據(jù)進(jìn)程ID等待主程序退出也已經(jīng)在TigerInstaller中實(shí)現(xiàn)了,其他的部分我寫了一個(gè)Delphi簡單的控件來實(shí)現(xiàn)。下面是控件的屬性和方法。屬性/方法類型Version:String;屬性軟件的當(dāng)前版本。VersionURL:String;屬性取得最新版本的URL。DownloadURL:String;屬性下載升級(jí)包的URL。LatestVersion:String;屬性獲取最新版本。Download:Boolean;方法下載升級(jí)包,并且執(zhí)行升級(jí)。實(shí)戰(zhàn)篇下載TigerUpdate控件包從下面的地址下載TigerUpdate控件包里面包含控件和一個(gè)范例程序,兩者都包括源代碼。/stuff/tigerupdate.rar控件的安裝1.用Delphi打開TigerUpdate60.dpk或TigerUpdate70.dpk(分別在Delphi6和Delphi7亡-Tig亡rllpd日t亡BO.dpk,編譯安裝,如下圖,14141?3CompileAddRemoveInstallOptionsContainsFiles PathContains+司Download E:WorkShop\Projects\TigerSetup\Compo閆TigerUpdate.pasE:WorkShop\Projects\TigerSetup\Compo閆TigerUpdateGO.dcrE:WorkShop\Projects\TigerSetup\Compo-_|Requires閆indv.dcpg]rtl.dcp1vcl.dcp2.點(diǎn)擊Delphi的菜單"Tools->EnvironmentOptions.."進(jìn)入EnvironmentOptions..對話框,在Library頁面中把TigerUpdate控件所在的目錄加入到LibraryPath中,如下圖

3.安裝完畢。編譯測試程序打開TigerUpdate\Sample目錄下的UpdateTest.dpr文件,編譯出可執(zhí)行文件UpdateTest.exe。生成原始安裝程序1.1.打開Tigerinstaller,在左邊對象樹狀圖中右擊我的應(yīng)用軟件節(jié)點(diǎn),在彈出菜單上點(diǎn)擊屬性,如下圖-InixiAL?空白方案向?qū)?打開@〕H4 J保存生成測試1-1+退出②我的應(yīng)用軟件我的應(yīng)用--B默認(rèn)匡-話-InixiAL?空白方案向?qū)?打開@〕H4 J保存生成測試1-1+退出②我的應(yīng)用軟件我的應(yīng)用--B默認(rèn)匡-話文1[…“(Bj…“(Bi…“(B-昌注/|…“屬性(E) |剪切(創(chuàng)復(fù)制兇刪妣粘貼②菜單4JSER名稱亡默認(rèn)包I類型可選包〔飢)j?…OHKEY_LOCAL_MACHINE-爭操作妣〕!?““(B復(fù)制完文件后執(zhí)行!?“(B安裝前執(zhí)行!?“(B安裝完成后執(zhí)行i?“(B卸載前執(zhí)行HE文件類型--囲ODBC…(B系統(tǒng)DSNi…(B用戶DSN運(yùn)行庫MSSQL^I據(jù)庫COM+組件(ftM)■沒有可用的升級(jí)包]羽Tig亡rInstaller測試版050了11[我的應(yīng)用軟件]文件(巳編譯安裝程序選項(xiàng)幫助把產(chǎn)品名稱改成“自動(dòng)升級(jí)測試程序”如下圖自動(dòng)升釀測試程序屋性1.00公司名稱產(chǎn)品名稱版本發(fā)行者1.00發(fā)行者鏈接聯(lián)丟人支持信息自述產(chǎn)品更新注冊默認(rèn)安裝路徑 <JROGRAM_FIUS沁自動(dòng)升級(jí)測試程序□是升級(jí)包 0支持反安裝“確定 X取消 t.更改圖標(biāo)2.2.在應(yīng)用程序文件夾(即安裝目錄)的右擊彈出菜單中點(diǎn)擊添加->文件如下圖

在彈出的打開文件對話框中選擇剛才編譯出來的UpdateTest.exe文件。3.3.右擊UpdateTest.exe文件,在彈出菜單上點(diǎn)擊“創(chuàng)建快捷方式”,如下圖:4.4.把創(chuàng)建出來的快捷方式拖放到“用戶的桌面”文件夾中,這樣在安裝完以后會(huì)在桌面上創(chuàng)建快捷方式方便測試程序。5.點(diǎn)擊保存按鈕保存這個(gè)項(xiàng)目為Sample.tpr6.點(diǎn)擊生成,生成原始安裝程序。

修改并編譯新的UpdateTest程序打開TigerUpdate'Sample目錄下的UpdateTest.dpr文件,修改TigerUpdatel組件的屬性Version為1.01,保存項(xiàng)目,然后重新編譯出可執(zhí)行文件UpdateTest.exe。生成升級(jí)包l.打開剛才保存的Sample.tpr文件。2.點(diǎn)擊菜單上的“新建->本項(xiàng)目升級(jí)包”創(chuàng)建Sample.tpr的升級(jí)包項(xiàng)目,如下圖:3.3.在左邊對象樹狀圖中右擊我的應(yīng)用軟件節(jié)點(diǎn),在彈出菜單上點(diǎn)擊屬性,在項(xiàng)目屬性對話框中把版本改成l.0l4.同樣把UpdateTest.exe文件加入到“應(yīng)用程序文件夾”中5.為了區(qū)分原安裝程序和升級(jí)包,點(diǎn)擊菜單“編譯->生成選項(xiàng)”,在生成選項(xiàng)對6.點(diǎn)擊“保存”按鈕,把項(xiàng)目保存為SampleUpdate.tpr7.點(diǎn)擊生成按鈕生成升級(jí)包。發(fā)布升級(jí)包假設(shè)您的電腦上已經(jīng)安裝并且設(shè)置好了IIS。把TigerUpdate'Sample目錄下的Update.asp文件復(fù)制到web站點(diǎn)的主目錄下,然后把升級(jí)包重命名為Update.exe同樣復(fù)制到web站點(diǎn)的主目錄下。測試運(yùn)行原始安裝程序,安裝完畢后,在桌面會(huì)創(chuàng)建一個(gè)UpdateTest的快捷方式,雙擊打開UpdateTest.exe,注意這時(shí)候Caption顯示的是1.00,點(diǎn)擊“檢查版本”按鈕,會(huì)顯示“最新版本:1.01”,點(diǎn)擊升級(jí)會(huì)出現(xiàn)下載進(jìn)度窗口,下載完以后程序退出,升級(jí)包的安裝程序啟動(dòng),升級(jí)包安裝好以后,雙擊桌面上的UpdateTest快捷方式,打開UpdateTest.exe程序,您會(huì)發(fā)現(xiàn)現(xiàn)在的版本已經(jīng)是1.01了。其他在需要強(qiáng)制更新軟件的情況下(比如某些C/S系統(tǒng),為了保證數(shù)據(jù)安全,所有客戶端的版本必須是最新的),可以在UpdateTest的主程序的Dpr文件加上下面的代碼:(原來已經(jīng)有了,把注釋去掉即可)//以下的代碼適合需要強(qiáng)制升級(jí)的情況withTTigerUpdate.Create(nil)dobegintryVersionURL:='/Update.asp?Command=Version';DownloadURL :='/Update.asp?Command=Download&Version=<VERSION>';Version:='1.01';if(LatestVersion>Version)andDownloadthenExit;finallyFree;end;en

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論