installshield制作安裝包-學(xué)習(xí)使用教程_第1頁
installshield制作安裝包-學(xué)習(xí)使用教程_第2頁
installshield制作安裝包-學(xué)習(xí)使用教程_第3頁
installshield制作安裝包-學(xué)習(xí)使用教程_第4頁
installshield制作安裝包-學(xué)習(xí)使用教程_第5頁
已閱讀5頁,還剩53頁未讀 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

幾乎所有的程序員在發(fā)布其軟件產(chǎn)品時都過軟件安裝的問題隨著軟件技術(shù)的日趨復(fù)雜以及軟件產(chǎn)品對系統(tǒng)環(huán)境的依賴增加如何使自己的軟件產(chǎn) 本文就安裝軟件制作技術(shù)以及該技術(shù)的最大供應(yīng)商InstallShield公司的InstallShield工具進(jìn)行了深入淺出的討論并重點介紹了InstallShield為適應(yīng)微軟WindowsInstaller標(biāo)準(zhǔn)而 推出的ISWI本文除了給出使用ISWI快速開發(fā)安裝軟件的應(yīng)用實例外還詳細(xì)介紹了程序員最關(guān)心的如何制作國際版本安裝讀者如果有深入了解InstallShieldInstallShield5快速制作安裝盤中國水利水 InstallShield2000使用詳 機(jī)械工 軟件安裝標(biāo)準(zhǔn)安裝機(jī)制國際版本數(shù)據(jù)庫對象組件功能部件表WindowsInstaller InstallShieldProfessionalVersion6 InstallShieldforWindowsInstaller目第1 第2 Installshield產(chǎn)品概 ISPro6的特 ISWI的特 第3 保存工程創(chuàng)建發(fā)布媒介測試安裝程 小 第4 第5 基于BDE的Oralce數(shù)據(jù)庫應(yīng)用程序安裝軟件制 基于ODBC的Access數(shù)據(jù)庫應(yīng)用程序安裝軟件制 第1 軟件安裝和安裝軟件制計算機(jī)應(yīng)用軟件的發(fā)展可以大致分為DOS時代Windows時代和Internet時代這三個時代的軟件分別有著自己獨特的特征如DOS時代的單機(jī)命令行操作Windows時代的多用戶圖形界面和Internet時代跨平臺跨地區(qū)的網(wǎng)絡(luò)應(yīng)用在這三個不同的時代不僅軟件自身發(fā)展經(jīng)歷了前所未有的巨大變化而且用戶安裝軟件的方式也在發(fā)生著深刻的變化DOS時代我們只需將應(yīng)用軟件拷貝到計算機(jī)中即可通過命令行運行但我們很難想象在Windows時代再繼續(xù)使用Xcopy之類的命令來為用戶安裝軟件Windows應(yīng)用程序的許多諸如組件修改 表配置ODBC等復(fù)雜操作已經(jīng)無法再交給用戶自己完成雖然在Internet時代基于WebBrowser/WebServer的應(yīng)用盛行讓人們一度相信瀏覽器的使用免除了客戶端軟件安裝的麻煩但服務(wù)器端的軟件安裝卻日趨復(fù)雜在許多領(lǐng)域?qū)Π惭b軟件的要求甚至更為苛刻比如要求跨平臺跨操作系統(tǒng)安裝按需安裝即時激活組件配置和網(wǎng)絡(luò)部署等于是尋找和使用功能強(qiáng)大的安裝軟件開發(fā)制作工具就成為每一個開發(fā)人員和軟件商迫切關(guān)心的問題那么怎樣才能制作出更復(fù)雜更創(chuàng)意的一流商業(yè)安裝軟件呢業(yè)界安裝軟件的工業(yè)標(biāo)準(zhǔn)是用該軟件的心情以及他們對該軟件開發(fā)機(jī)構(gòu)的看法為得到一個好的第一印象安裝軟件必較好地處理應(yīng)用程序中使用的第部件如題 WindowsInstallerWindows認(rèn)證標(biāo)志的安裝軟件標(biāo)準(zhǔn)凡是符合該認(rèn)證標(biāo)志的軟件產(chǎn)品都可以Windows2000和Windows98me的功能如果要申請該認(rèn)證標(biāo)志應(yīng)用程序必須使用WindowsInstaller來安裝和卸載WindowsWindows2000應(yīng)用程序規(guī)格說明桌面應(yīng)用程序ApplicationSpecificationforWindows2000ForDesktopApplications技術(shù)文檔中提煉出來的與程序安裝有關(guān)的要求必須將應(yīng)用程序的缺省安裝目標(biāo)文件夾設(shè)定為\ProgramFiles該名稱可能會因不同的語言文字及驅(qū)動器而不同COM服務(wù)器必須是一個組件的單獨文件并且是鍵文件key安裝程序必須能在完全圖形化的用戶界面下正確運行即能使用基本的用戶界面 CD-ROMCD-ROM首次插入時支持自動運行支持安裝程序卸載功能能出現(xiàn)在Windows安裝程序必須能夠防止組件文件被舊版本覆蓋實際上微軟建議不要直接把任何東西安裝到Windows的system文件夾中Windows為什么選用InstallShield制作安裝軟InstallShield軟件公司是一家專業(yè)從事安裝軟件開發(fā)工具生產(chǎn)的著名軟件公司該公司由VireshBhatia和RickHarold于1987年創(chuàng)建公司自創(chuàng)建之初就以獨立軟件供應(yīng)商的角色致力于高可靠性軟件開發(fā)工具的研發(fā)并在軟件及數(shù)字打包和發(fā)布領(lǐng)域有突出的貢獻(xiàn)其軟件安裝標(biāo)準(zhǔn)和產(chǎn)品被各大商業(yè)軟件供應(yīng)商廣泛使用自Windows軟件開發(fā)之初InstallShield軟件公司就已經(jīng)專注于通用安裝軟件制作工具的開發(fā)并解決Windows操作系統(tǒng) 以滿足開發(fā)人員及最終用戶的需要其主打產(chǎn)品InstallShield為滿足各種Windows平臺和不同的安裝需求提供完整的軟件安裝解決方案并且已經(jīng)形成人們所熟悉的一套軟件安裝的工業(yè)標(biāo)準(zhǔn)InstallShield的產(chǎn)品自2000版本開始還增加了對WindowsInstaller服務(wù)可以開發(fā)完全符合Windows認(rèn)證標(biāo)志要求的安裝軟件目前全球絕大多數(shù)主流商業(yè)軟件都使用了InstallShield產(chǎn)品來開發(fā)安裝軟件特別是該產(chǎn)品對安裝軟件的支持使得制作本地語言和國際版本的安裝程序不再是一個難題特別是對東方國家計算機(jī)中使用的雙字節(jié)字如中文日文韓文等支持為我們制作全中文的安裝軟件提供了優(yōu)勢國內(nèi)許多著名的商業(yè)軟件如金山公司的WPS 都是用InstallShield制作的雖然許多應(yīng)用程序開發(fā)系統(tǒng)都提供了的安裝軟件制作工具如VisualBasic和PowerBuilder等使用這些安裝工具的唯一好處是可以比較容易地制作由本系統(tǒng)開發(fā)出的應(yīng)用程序的安裝軟件因為它們大都會自動找到并配置相關(guān)的動態(tài)庫操作也比較簡單遺憾的是用它們制作出的安裝軟件功能單一界面單調(diào)并且?guī)в性_發(fā)系統(tǒng)產(chǎn)商的印記容易讓別人一眼就看出你的應(yīng)用程序是用什么工具開發(fā)的這些都是安裝軟件制InstallShield在安裝軟件制作領(lǐng)域的成功許多公司紛紛采用InstallShield的技術(shù)為自己的開發(fā)工具提供安裝軟件制作支持于是出現(xiàn)了許多InstallShield版本如用于DelphiInstallShieldExpressForBrolandDelphiVCInstallShieldExpressForVC++認(rèn)識軟件安裝機(jī)InstallShield的安裝機(jī)InstallShield軟件安裝工作的實質(zhì)是把需要安裝的文件傳輸?shù)街付ǖ南到y(tǒng)中應(yīng)用文件自然會因自身的相似特點而歸類如系統(tǒng)動態(tài)庫DLL可執(zhí)行文件幫助文件等以共享會不會存在加鎖問題是否壓縮使用何種操作系統(tǒng)或支撐平臺使用何種語言作為安裝軟件的制作者須充分考慮安裝文件的不同特點并合理設(shè)計文件組件部件和子部件為安裝文件和相關(guān)軟件打包提供了極大的靈活性部件和子部件在以用戶安裝部件由不同的文件組組成它作為獨立的安裝模塊可以供用戶進(jìn)行選擇性安裝以如果你的安裝軟件是提供一套產(chǎn)品就可以把這套產(chǎn)品中的每一個產(chǎn)品作為一個部件供用戶選擇安裝比如微軟的Office套件就把Word 立的安裝部件由用戶選擇每一部件又可以包含不同的子部件這樣可以提供用戶的選擇項InstallShield可以使你更自由的設(shè)計部件和子部件以滿足不同的安裝配置需要為了減少用戶自行選擇安裝部件的麻煩我們可以向用戶建議不同的安裝方案供用戶安裝所有的圖庫和詳細(xì)的幫助于是根據(jù)不同類型用戶的不同需要設(shè)計具體的方案來組織安裝部件使之成為一種可選擇的安裝類型就顯得特別重要組織安裝部件時可以把不同的安裝部件按照實際的用戶類型劃分為幾種安裝類型用行令人困惑的選擇和配置例如你可以創(chuàng)建服務(wù)器客戶機(jī)/管理員模式和客戶機(jī)/一般用戶模式等安裝類型也可以創(chuàng)建最小安裝典型安裝和完全安裝等安器那些部件安裝在客戶機(jī)以及那些用戶選擇那些部件而進(jìn)行艱難煩瑣的選擇InstallShield可以讓你把安裝使用的文件文件組部件和安裝類型作為模塊自由設(shè)計在制作安裝軟件的過程中你必須先把獨立的安裝需要的文件分配到文件組中然后把文件組程序的時候用戶就可以選擇不同的安裝類型和想要安裝的各個部件及子部件了1-11-11-1A可能是一個最小安裝類型它B型都可以靈活定義然后通過互相間的關(guān)聯(lián)設(shè)置來實現(xiàn)最終目的裝的應(yīng)用程序或產(chǎn)品的一部分當(dāng)安裝程序從用戶電腦安裝或卸載一個組件時總將它看成選擇主要決定于用戶對應(yīng)用程序某些功能的偏愛鑒于組件通常會被程序或產(chǎn)品共享所以 組件的例子包括單一的文件一組相關(guān)的文件COM對象參數(shù)鍵快捷方式資源一個 下的庫以及諸如MFC或DAO中組件ID這一列標(biāo)明的組件IDGUID來每一個組件兩個共享同一個組件ID的組件安裝到用戶的電腦上因此許多功能部件或應(yīng)用程序可以共些組件因為組件通常是共享的安裝包的開發(fā)人員編寫某個功能部件的組件或應(yīng)用程序時必須遵循嚴(yán)格的規(guī)定這對于WindowsInstaller計數(shù)機(jī)制的正確操作是非常重要的這些規(guī)定主要是每個組件必須被分別在單個文件夾中文件表條目快捷方和子級的繼承關(guān)系也就是說如果一個子功能部件被安裝了其相應(yīng)的父功能部件也就自動WindowsInstaller 在獲取階段的一開始應(yīng)用程序或用戶通知Installer安裝某個功能部件或者應(yīng)用程序Installer就順著安裝數(shù)據(jù)庫中的隊列表里所標(biāo)明的動作一步步執(zhí)行 在執(zhí)行階段里Installer把信息傳送給具有相應(yīng)權(quán)限的過程處理并運行腳回退如果安裝不成功Installer將恢復(fù)計算機(jī)的初始狀態(tài)Installer運行安裝時它能自動生成了一個回退除了生成回退Installer還保存了安裝過程中它所刪除的每個文件的副本這些文件被保存在隱匿的系統(tǒng)中一旦安裝完成回退和這些保存的文件則被全部刪除掉能力結(jié)合到自己的應(yīng)用程序中下圖1-2顯示了應(yīng)用程序?qū)δ懿考恼埱蟀惭b過程1-2圖標(biāo)1-3ISWI設(shè)計中的安裝文件組件功能部件結(jié)構(gòu)InstallShield2000InstallShieldforWindowsInstallerISWI使用了安裝文件組件功能部件的結(jié)構(gòu)取代了傳統(tǒng)的文件組安裝部件安裝類型結(jié)構(gòu)如圖1-3所示該結(jié)構(gòu)適應(yīng)了微軟的WindowsInstaller服務(wù)的需要其包容性更加廣泛其中安裝文件包含了文件表數(shù)據(jù)快捷方式高級設(shè)置與 +ODBCNT服務(wù)等有關(guān)組件類似于原來的安裝部件但可以通過融合模塊增加對第組件技術(shù)的支持功能部件雖然也類似于原來的安裝類型但更突出了要安裝的程序功能該用戶的安裝選擇其中包括了傳統(tǒng)安裝中沒有的應(yīng)用程序功能亦稱即時激活功能即可以不安裝程序而只將應(yīng)用程序的圖標(biāo)放置在桌面上等到用戶需要時雙擊圖標(biāo)即可安裝圖1-4第2 Installshield產(chǎn)品概InstallShieldInstallShieldDemoShield前者用于安裝軟件的開發(fā)后者則用于軟件產(chǎn)品的演示InstallShield軟件公司將這兩種產(chǎn)品結(jié)合起來作為軟傳統(tǒng)和現(xiàn)InstallShield軟件公司以開發(fā)InstallShield安裝軟件制作工具起家其特有的InstallScript語言為安裝軟件的制作提供了廣闊的空間InstallScript類似于C語言并有自己的編譯器InstallShield在不斷的發(fā)展中除了將InstallScript的功能不斷加強(qiáng)外還增加和完善了大量的向?qū)Ш秃瘮?shù)以提高用戶的安裝軟件制作效率特別是為了支持像ODBC DirectX那樣的第技術(shù)InstallShield從InstallShield5.x的模板到InstallShield6.x的對象一直在作用心良苦的改進(jìn)可以說InstallShield公司一直以其所擁然而InstallShield公司仍然著來自微軟的新微軟自Windows2000操作系統(tǒng)開始引入了WindowsInstallerWI服務(wù)使得用戶可以利用微軟提供的API函數(shù)構(gòu)建符合微軟標(biāo)準(zhǔn)的安裝軟件并充用微軟WindowsInstaller服務(wù)提供的諸多好處這意味著微軟對Windows平臺上安裝軟件制作標(biāo)準(zhǔn)的新為了跟上安裝軟件制作技術(shù)的自然進(jìn)化滿足用戶的需求并迎接新的 1999年9月InstallShield軟件公司宣布InstallShield2000專業(yè)版簡稱ISPro2K面世這是該公司首次將其軟件安裝開發(fā)工具劃分采用自身傳統(tǒng)標(biāo)準(zhǔn)的InstallShieldProfessional和采用微軟WindowsInstaller標(biāo)準(zhǔn)的InstallShieldforWindowsInstaller兩個不同版本為了滿足開發(fā)人員的高級安裝要求為目標(biāo)ISPro2KInstallShieldProfessionalVersion6ISPro6InstallShield5.x的直接升InstallShieldforWindowsInstaller簡稱ISWI它支持新的WindowsInstallerWI服務(wù)該服務(wù)是為Windows2000設(shè)計的一個關(guān)鍵部件通過向開發(fā)人員提供創(chuàng)建更智能化更靈活更易管理的安裝軟件的系統(tǒng)服務(wù)來實現(xiàn)總成本 ISPro6InstallShieldProfessional5.x的升級版本用戶只能使用安裝語言創(chuàng)建安裝程序包InstallScript安裝語言是一種強(qiáng)大的智能許多步驟使用ISPro6可以在一個集中的地方創(chuàng)建組織編譯和測試安裝程序包ISPro6Windows95/98NT4的系統(tǒng)平臺中將創(chuàng)建自己的安裝引擎該引擎包括InstallScript語言及其編譯器以及和安裝軟件一起打包的運行時刻版InstallShieldProfessionalsetup.exeInstallShieldISPro6InstallShieldforWindowsInstallerWindowsInstaller服務(wù)支持WindowsInstallerWindows2000及其后續(xù)版本的一個要素如果操作系統(tǒng)使NT4Windows95/98WindowsInstallerWindowsInstallerWindowsInstallerAPIClientInstall和一個InstallService它們可以作為WindowsNT服務(wù)程序以提升的管理權(quán)限運行這樣的好處是需要管理權(quán)限的安裝程序可以由一個標(biāo)準(zhǔn)用戶來運行WindowsInstaller服務(wù)處理的文件和設(shè)有了WindowsInstaller服務(wù)操作系統(tǒng)可以所有安裝的應(yīng)用程序和為多個應(yīng)用程序共享的管理組件新的服務(wù)使安裝過程更為輕松它使得用戶對應(yīng)用程序管理器有了更全面微軟認(rèn)為增加WindowsInstaller服務(wù)的目的是為了讓使用其操作系統(tǒng)的計算機(jī)用戶減少TCO WindowsInstaller服務(wù)的加入是Windows操作系統(tǒng)體系的一個巨大進(jìn)步然而這個新的服務(wù)程序并不是安裝程序的開發(fā)環(huán)境開發(fā)者仍然需要一個像ISWI這樣的環(huán)境以WindowsInstaller文件格式十分復(fù)雜想要了解其中的細(xì)節(jié)和手工處理數(shù)據(jù)庫需要大量的時間ISWI有自動的向?qū)Ш凸δ軓?qiáng)大的特性例如全屏框編輯器動態(tài)文件以SKUWindowsInstaller的安裝軟件使用ISWI用戶可以很容易地生成符合低TCOWindowsInstaller功能部件并編譯出符合Windows2000ApplicationSpecification要求的安裝程序包ISPro6的特使用ISPro6可以制作出用戶所熟悉的復(fù)雜的工業(yè)級安裝軟件以體現(xiàn)工作的一貫性測你的安裝需求使你從安裝結(jié)構(gòu)的底層復(fù)雜性中出來并幫助你避免出現(xiàn)問題ISPro6Windows環(huán)境下安裝軟件的易用性和高效性以下是ISPro6的主要新增特點部件的安裝和卸軟件的安裝和卸載進(jìn)行的控制目前多數(shù)應(yīng)用程序僅提供典型安裝簡潔安裝和自定義安裝即使自定義安裝對安裝內(nèi)容的控制也很有限而卸載程序時也嚴(yán)格限制為卸載全部的應(yīng)用程序如果想創(chuàng)建一個以上限制的安裝程序則需要進(jìn)行大量的如圖2-1所示部件的安裝和卸載功能使得開發(fā)人員提供的安裝選擇變得輕而易圖2-1部件的安裝和卸載功能提供了的安裝選2-2InstallShield現(xiàn)今許多應(yīng)用程序都要求對一些流行的第技術(shù)進(jìn)行支持比如ODBC數(shù)據(jù)庫舉VisualBasicSQLserver數(shù)據(jù)庫相連的工作站上為了避免出錯失敗和打攪系統(tǒng)管理員在安裝過程中應(yīng)付賬應(yīng)用程序的安InstallShield以前的版本是通過使用預(yù)先寫好的模板讓開發(fā)人員放進(jìn)他們的 需要進(jìn)行定制來實現(xiàn)的盡管這樣節(jié)省了編寫代碼的時間但仍然需要諳悉第技術(shù)隨著InstallShield對象的引入開發(fā)人員現(xiàn)在可以與他們安裝程序中所包含的第技術(shù)完 只要把需要的對象放進(jìn)你的工程中即可自動提供所需的支持對于那個應(yīng)付賬應(yīng)用程序來說開發(fā)人員只需放入ODBCSQLserver支持文件和表的設(shè)置情況當(dāng)安裝程序需要隨著新版本的SQLserver升級時只要簡單地替換ODBC對象即可開發(fā)人員無需知道兩個版本間的差異以及如何從安裝中去掉舊的代碼當(dāng)應(yīng)用程序卸載時所有的文件和表中的設(shè)置一起清除干凈如圖2-2所示ISPro6包含了一組對象它們是ODBCOLEDAOVBMFCDCOMMDACRDOAccess97VBRuntimeDirectX6ConfigureNTServices今后InstallShield對象可以從InstallShield得到InstallShield將不停地更新并增加它們這意味著如果開發(fā)人員需要更換或升級一個對象以及需要一個新對象時可以立即它而不依賴于ISPro2K的版本開發(fā)人員可以容易地替換改對象并編譯所的安裝程序比以基于事件的模圖2-3基于事件的結(jié)如圖2-3所示ISPro6采用了與VisualBasicVB類似的基于事件的結(jié)構(gòu)這意味著大多數(shù)的安裝程序不再需要InstallShieldProfessional早期版本必須的那么多文件與VB類似的結(jié)構(gòu)也使得學(xué)習(xí)和使用語言非常容易ISPro6包括事先定義好的對所有安裝程序都適用的框架這個結(jié)構(gòu)使得建立在事件的基礎(chǔ)之上并提供了在更次上對功能的把握ActiveDependency2-4ActiveDependency如圖2-4示有了ActiveDependencyManager 的幫助安裝程序的開發(fā)者再也不會遺漏某個DLL文件了ADM能自動識別與安裝工程有關(guān)的靜態(tài)和動態(tài)DLL文件這為安裝程序中的所有DLL文件提供了完美的解決方案ADM可以作為一個程序開發(fā)者加載ADM程序然后啟動應(yīng)用程序確保所有的函數(shù)ADMDLL文件并通過ADM獨一無二的功能啟動一個框讓開發(fā)者添加或跳過單個DLL文件導(dǎo)入?yún)indows表非常復(fù)雜難于處理當(dāng)安裝程序開發(fā)者手工添加參數(shù)時極易發(fā)生錯誤ISPro6通過自動導(dǎo)入?yún)?shù)解決了這個問題從表編輯器REGEDIT中導(dǎo)出格式正確的表文件并直接把這個文件導(dǎo)入安裝工程參數(shù)可以以標(biāo)準(zhǔn)REG格式在任何文本編輯器中創(chuàng)建檢查和修改隨后這個文本文件被直接導(dǎo)入到工程中編譯開發(fā)人員在對工程作過修改后不必再對整個工程進(jìn)行編譯BuildMedia功能只編譯修ISPro6其他主要特ISPro6提供了動態(tài)文件連接使得開發(fā)者不需要工程中每個文件的變化通過動態(tài)文件連接在編譯時只要事先定義了路徑和通配符所有源文件就可以自動被包含進(jìn)工程假新進(jìn)行設(shè)定每一個變化動態(tài)文件連接可以保存修改次數(shù)并去除可能的錯誤ISPro6提供了全部的 語句包括超過300條預(yù)定義的與安裝有關(guān)的函數(shù)函數(shù)可以通過函數(shù)向?qū)unctionWizard加入或者手工加入 ISPro6有一個類似VisualC++的集成開發(fā)環(huán)境幫助開發(fā)者便捷地修改和組織安裝工程集成開發(fā)環(huán)境是一個有語法功能的編輯器通過InstallScript的語言可以完全控制安裝的過程ISPro6還提供工程向?qū)rojectWizard 用來加速開發(fā)進(jìn)度使用向?qū)е恍杈挪郊纯蓜?chuàng)建好安裝程序MediaBuildWizard可以使安裝工程方便的指向某個或所有的發(fā)布 使用ISPro6可以將安裝程序放到一張或多張CD-ROM上或者自定義最大達(dá)到4GB的容量文件可以壓縮或不壓縮現(xiàn)在InstallFromTheWeb(IFTW) (PFTW)已經(jīng)和InstallShieldProfessional6集成在一起可以在集成開發(fā)環(huán)境中調(diào)用這些InstallShield網(wǎng)絡(luò)發(fā)布工具還可以將工程信息導(dǎo)出IFTW單獨出售 InstallShield日志文件閱讀器InstallShieldLogFileViewer 和InstallShieldCabinet文件閱 前者用于瀏覽安裝時生成的卸載日志uninstalllog后者用于瀏覽打包在CAB文件中的文件組組件和安裝類型ISWI的特ISPro6類似ISWI也提供了方便易用的界面來創(chuàng)建強(qiáng)大而復(fù)雜的工業(yè)級安裝軟件微軟推出的Windows2000包含了為減少TCO而設(shè)計的眾多優(yōu)秀特性其中之一是WindowsInstallerWindows2000開發(fā)人員能夠創(chuàng)建復(fù)雜的智能化安裝軟件WindowsInstaller服務(wù)也支持Windows95/98/NT4Windows2000操作系統(tǒng)因此WindowsInstaller服務(wù)生成的安裝程序亦可以在使用這些操作系統(tǒng)的機(jī)器上運行ISPro6可以進(jìn)行功能部件級的安裝或卸載和InstallShield類似這意味著可以只安裝或卸載應(yīng)用程序中的一個部件或者是應(yīng)用程序套件中的某個程序應(yīng)用程序功能可以不安裝程序而只將應(yīng)用程序的圖標(biāo)放置在桌面上等到用戶需要時雙擊圖標(biāo)即可安裝以便更好地保護(hù)用戶的系統(tǒng)否則殘留的文件或參數(shù)可能導(dǎo)致其他應(yīng)用程序出錯WindowsInstaller服務(wù)是Windows開發(fā)環(huán)境WindowsInstaller服務(wù)并處理其數(shù)據(jù)庫中的一系列表通過這些表并利用上述的功能不必用到那些需要進(jìn)行復(fù)雜而痛苦的手工處理的開發(fā)環(huán)境通過易用的界面強(qiáng)大的功能和有用的向?qū)г陂_發(fā)者創(chuàng)建復(fù)雜的安裝程序時ISWI能夠?qū)τ糜赪indowsInstaller服務(wù)的表實現(xiàn)自動和高速處理ISWI使得開發(fā)人員不必熟知WindowsInstallerISWIWindowsInstaller框編輯2-5VB的話框編輯器Dialog功能強(qiáng)大的全屏幕框編輯器DialogEditor使得開發(fā)者創(chuàng)建和修改安裝用戶框非常容易如圖2-5所示框編輯器使用了與VB相似的界面包括創(chuàng)建窗口工具箱和屬性頁可以通過鼠標(biāo)點擊完成對單個屬性進(jìn)行添加編輯或刪除ISWI內(nèi)含超過25個預(yù)先設(shè)定的框這些框也可以很容易地定制開發(fā)者導(dǎo)出與框有關(guān)的信息并把這些信息導(dǎo)入未來的工程中這能使得在安裝程序的多個應(yīng)國際版本的支InstallShieldProfessionalISWI分為兩部分出售東方版和西方版兩部分加起來共有超過20種的語言支持InstallShield還為包括框ISWI國際版本文件這些文件可以自行編輯或者讓人翻譯編輯后的文件能導(dǎo)入到一個已有的工程或新工程中去比如你已經(jīng)編輯了一些字符串新增的并打算將應(yīng)用程序進(jìn)行比如使用簡體中文日文西班牙文和意大利文方法很簡單首先用英語創(chuàng)建編譯和測試個或多個翻譯讓翻譯將你的文本文件譯為簡體中文日文西班牙文和意大利文版本而不必包括應(yīng)用程序然后把翻譯好的文本文件導(dǎo)入到工程中SKUSKU管理器是一個省時省事的工具它使開發(fā)者能夠在一個工程中可以生成不同版本的應(yīng)用程序比部件設(shè)置一下用戶定義標(biāo)記user-definedflags當(dāng)為工程編譯一個特別的發(fā)布版本時動態(tài)文件2-6如圖2-6所示和InstallShieldProfessional的早期版本相同為了讓開發(fā)者不必工程中每個文件變化ISWI也提供了動態(tài)文件有了動態(tài)文件只要事先定義了路徑和通配符所有的源文件在編譯時會自動包含到工程中假如沒有這項特性每當(dāng)改變了件節(jié)省了時間并消除了可能的錯誤融合模塊的處融合模塊的處理允許開發(fā)者對諸如運行時刻引擎或那樣的數(shù)據(jù)元素打包以便在多個應(yīng)用程序中使用與WindowsInstaller服務(wù)安裝程序包使用的標(biāo)準(zhǔn)MSI文件格式不同融合模塊的處理允許創(chuàng)建一個以MSM為后綴的子集這些文件包含文件文件快捷方組件向2-7WindowsInstaller快速創(chuàng)建一個組件如圖2-7所示ISWI組件向?qū)еС职–OM服務(wù)器ODBC源Windows2000服務(wù)和服務(wù)控制以及字體在內(nèi)的多種組件另外組件可以從基于微軟最佳實踐方針的文件池中自動生成最佳實踐方針得到InstallShield軟件公司的有力支持它包括了像每個組件只能有一個可攜帶的執(zhí)行文件以服務(wù)的功能使開發(fā)過程標(biāo)準(zhǔn)化工程向2-8工程向?qū)莿?chuàng)建工程的得力工具開發(fā)者只需指定應(yīng)用程序功能部件組件文件2-8所示這對來創(chuàng)建新工程然后再使用詳細(xì)的視圖來增強(qiáng)和定制安裝程序的每一部分最佳實踐向在創(chuàng)建工程時最佳實踐向?qū)estPracticeWizard在運行并自動提示開發(fā)者最佳的操作方案提示時向?qū)С霈F(xiàn)一個框列出修改建議開發(fā)者可以選擇接受發(fā)布向發(fā)布向?qū)蔷幾g安裝軟件的得力助手如圖2-9指定類型 功能部件進(jìn)行分類見前述SKU管理器以便生成不同的安裝版本例如測試板試用WindowsInstallerWindowsInstaller服務(wù)時這樣做極為有益ISWI可在NT95/98上安裝WindowsInstaller服務(wù)2-9第3 十快速搞定安裝軟如果要制作普通的應(yīng)用程序軟件安裝軟件實際上使用InstallShield要比我們還要簡單由于InstallShieldforWindowsInstallerISWI在國內(nèi)介紹的比較少而且它又是InstallShield的發(fā)展趨勢所以我們在這里重點介紹ISWI的應(yīng)用使用安裝工程向?qū)Э梢钥焖俑愣ò惭b軟件下面我們就通過一個例子來進(jìn)行演示講解例子使用的程序是位于<InstallShieldforWindowsInstaller安裝 Files\下的Ot ogame文件這個文件是在安裝ISWI時提供的用它來生成一個安裝程序另外一個名為Ot o.ism的示范工程已經(jīng)生成在向?qū)ЫY(jié)束時可以馬上看到該工程的大致面貌這個工程位于<InstallShieldforWindowsInstaller安裝 o\Project的第一個安裝工程了在這里我們還將向你提供各種建議以便你將安裝軟件做得更為出色啟動工程向圖3-1工程向?qū)?e面單擊左側(cè)的ProjectWizard工程向?qū)О粹o啟導(dǎo)向?qū)е械拿總€步驟依次列于歡迎界面中如圖3-1所示將鼠標(biāo)指向其中的任意一個都可以獲得詳細(xì)的介紹單擊Next繼續(xù)界面也提供了打開SetupBestPractice的選項此選項缺省值為關(guān)閉IgnoreBestPracticesWindowsInstallerSetupBestPractices可以幫助生成簡潔和可重復(fù)使用的代碼以便處理令人頭痛的DLL作為缺省值InstallShield不會自動掃描安裝工程因此當(dāng)?shù)谝淮未蜷_集成開發(fā)環(huán)境時可以選定這項功能如果沒有選擇IgnoreBestPracticesviolations功能InstallShield會工程向?qū)е械某绦蛟贏pplicationFiles面板上對于不滿足最佳實踐要求的任何文件會放置一個警告圖標(biāo)點擊Details按鈕能查看到詳細(xì)信息InstallShield集成開發(fā)環(huán)境里的一個選項可在Tools|Options菜單項中進(jìn)行設(shè)置在工程向?qū)е惺褂玫降淖罴褜嵺`監(jiān)視功能也能在集成開發(fā)壞境視圖下使用命名新工3-2工程向?qū)У腤izardProject工程或打開一個已有的工程進(jìn)行編輯如圖3-2所示單擊CreateaNewProject并輸入新工程的名稱比如Oto單擊Next繼續(xù)CreateaNew為了命名新工程InstallShield提供了缺省名稱YourProjectName-nn為連續(xù)的數(shù) 工程名不能包含以下字符:\/:OpenaRecentOpenanExistingBrowse工程 文給出應(yīng)用程序的有關(guān)信3-3ApplicationInformation在這一步要求你提供有關(guān)你的公司和應(yīng)用程序的信息這些信息主要用于時生成Windows2000Add/RemovePrograms中的信息請按如圖3-3所示的示范填寫向?qū)⒏鶕?jù)你的公司和應(yīng)用程序的名稱來設(shè)置目標(biāo)文件夾的值單擊Next繼續(xù)注意這里輸入的信息將用來設(shè)置幾個重要的工程屬性和產(chǎn)品屬性Application這里輸入的值將在整個工程中使用包括工 編譯程序包名(.msi文件程序名不能包含以下字符程序名不能包含以下字符 產(chǎn)品代碼 Add/RemovePrograms 輸入應(yīng)用程序的版本號由于該值符合Windows的安裝標(biāo)準(zhǔn)因此當(dāng)單擊supportinformationlink 時該值將出現(xiàn)在Add/RemovePrograms添加刪除程序Company將作為產(chǎn)品信息進(jìn)行當(dāng)點擊supportinformationlink支持信息時它將出現(xiàn)在Add/RemovePrograms添加刪除程序面板中DefaultDestination產(chǎn)品所有的功能部件和組件都存放在INSTALLDIR中WindowsInstallerfolderpropertyWindows\ProgramFiles<ProgramFilesFolder> 當(dāng)單擊supportinformationlink 時此號碼將出現(xiàn)在Add/RemovePrograms添加刪除程序面板中URLforCompanyorProduct將產(chǎn)品或公司的提供給用戶以便用戶了解信息在product屬性中可以給幫助(Help)更新(Updates)和信息(Information)分別設(shè)置URL時會用到該值當(dāng)單擊supportinformationlink支持信息時該值將出現(xiàn)在Add/RemovePrograms添加刪除程序面板中選擇安裝語安裝程序可以使用多種語言通過此面板可以選擇安裝程序運行的語言環(huán)境如圖3-4所示缺省選項為英語若要選擇其它語言請選擇相應(yīng)的復(fù)選框如果要增加對某種語言支持InstallShield可向你提供支持該語言的字符串表和好的用戶界面等資源并允許你用該語言發(fā)布安裝程序當(dāng)增加一種語言時InstallShield將向你提供一張列表列出已翻譯好的用戶面板并允許用這些語言發(fā)布安裝程序一旦生成了工程就可以在工程的SetupLanguagesProject視圖在列表中修改缺省語言(Defaultlanguage)其在SetupLanguages列表中用標(biāo)出如果選擇了工程向?qū)Ю锏腷uildyourfirstrelease那么面板還能決定安裝程序包使用的語言 Setup的網(wǎng)頁相應(yīng)的支持程創(chuàng)建功能部3-5ApplicationFeatures如圖3-5所示設(shè)計安裝程序的一個重要步驟是按功能部件組織產(chǎn)品即讓用戶來選擇安裝哪些應(yīng)用程序你將根據(jù)安裝功能部件來組織程序以便最終用戶選擇安裝要素比如在本例中我們只需要一個DefaultProgram功能部件為了刪除向?qū)峁┑钠渌笔」δ懿考x中這些功能部件并單擊DeleteNext繼續(xù) 被選中單擊Add按鈕生成一個新功能部件假如選中的是功能部件則增加新的子功能部件工程向?qū)⒁匀笔〉腘ewFeaturen為連續(xù)值命名新功能部件可以立即修改名稱也可以稍后再改亦可以右擊功能部件樹選中NewFeatureAdd選中一個功能部件或子部件單擊Delete將其從樹中刪 標(biāo)右鍵選擇選擇一個功能部件或子部件點擊Rename按鈕重新命名按F2鍵或在功能部件上點擊鼠標(biāo)右鍵選擇Rename也能重新命名功能部件樹中的各部件名稱必須是唯一的名稱可以包括字母數(shù)字點(.)和下劃線(_),SetupDesign-GlobalSetupDesign-Features視圖中可以為顯示名指定序列號stringID生成組3-6ApplicationComponents組件是一種極為有用的工具它能幫助你合理地安排類似的程序數(shù)據(jù)如文件項和件表和快捷鍵當(dāng)最終用戶安裝了功能部件或子功能部件相關(guān)數(shù)據(jù)將安裝到目標(biāo)系統(tǒng)本例中我們只需兩個組件Program_Executables和Game_Pieces如圖3-6所示為了DeleteGamePieces部件單擊Add并輸入部件名稱重復(fù)上一步生成Program_Executables部件選中各部件的defaultself-registrationanddestinationfolder屬性該屬性使用缺省的自和目標(biāo)文件夾單擊Next繼續(xù)由于需要將組件添加到工程里因此假如本面板中未生成任何組件向?qū)苯? 這樣才能使用SetupDesignApplicationFiles CreateShortcuts和RegistryData面板Filesareself- DLL,DLL,或OCX文 件的DestinationFolderWindowsInstallerFolder屬性替代路徑的硬編碼在選擇新文件夾時請注意它將覆蓋ComponentDestination域中的在組件上單擊Add按鈕生成一個新組件并按字母順序添加到樹中工程向?qū)⒁匀笔〉腘ewComponentn n為連續(xù)值命名新組件既可以馬上修改其名稱也可以稍后再改在頂端的上單擊鼠標(biāo)右鍵選擇NewComponent選中一個組件單擊DeleteDelete相當(dāng)于單擊DeleteRenameF2鍵或右擊組件選擇Rename關(guān)聯(lián)組件和功能部3-7SetupDesign相關(guān)聯(lián)如圖3-7所示,本面板將幫助建立組件與一個或多個功能部件或子部件間的關(guān)聯(lián)注意只有ApplicationComponents面板里有多個組件時才會出現(xiàn)本面板雖然一個組件可能擁有多個功能部件但本例中只需要一個功能部件為了將組件和Default_Program功能部件相關(guān)聯(lián)選擇SetupDesign列表中的Default_Program功能部件將組件列表全部選中并單擊Add單擊 繼

要建立組件與功能部件間的關(guān)聯(lián)可以在Components列表中選擇一個組件或者按住Shift或Ctrl鍵單擊Additional單擊 按一旦組件添加到功能部件后當(dāng)在那個功能部件上單擊時該組件將從Components列SetupDesign列表中的某個組件單擊Remove按鈕可撤銷它和功能部件或子部件間的關(guān)聯(lián)當(dāng)某個組件和功能部件之間沒有關(guān)聯(lián)時它將出現(xiàn)在該功能部件可用的組件列把文件關(guān)聯(lián)到組3-8ApplicationFiles通過圖3-8所示面板可以把程序文件安排到組件中并詳細(xì)說明這些文件的安裝信息注意只有ApplicationComponents面板里有多個組件時才會出現(xiàn)此面板文件是與某個組件關(guān)聯(lián)的主要數(shù)據(jù)選中一個組件并單擊AddFiles按鈕將其連接到你的程序文件記住所有與組件關(guān)聯(lián)的文件必須有相同的自覆蓋和目標(biāo)文件夾等屬性本示例中你將為Oto安裝文件這些文件位于<InstallShieldforWindowsInstaller安裝>\Samples\Oto\DataFiles下主執(zhí)行程序?qū)儆赑rogram_Executables組件為了連接到這個文件首先在組件列表中選中Program_Executables再單擊AddFiles瀏覽DataFiles子文件夾然后選擇Oto.exe并單擊Open部件列表中就出現(xiàn)了Oto.exe接著將在以Program_Executable為目標(biāo)的系統(tǒng)中創(chuàng)建Oto.exe的快捷鍵你必須為這個部件設(shè)置一個keyfile鍵文件選中Oto.exe并單擊SetKeyFile下一步Game_Pieces組件中的所有.gif文件建立這些文件位于DataFiles文件夾中該組件不需要鍵文件在左邊的ApplicationFiles o.exe o.exe部件和舊系統(tǒng)中可能不存在的VisualBasic文件要使示例程序正確運行你可能需要在安裝程序中插入Oleaut32.dll,Msvbvm50.dll,Comcat.dll,Olepro32.dll,AsycFilt.dll,Ctl3d32.dll,和Stdole2.tlb的融合模塊也可通過組件向?qū)檫@些文件生成組件首先是從列表中選擇一個組件此面板里的其他操作都和這個組件有關(guān)重復(fù)執(zhí)行本操Back按鈕退回到ApplicationComponents面板件右擊文件列表選擇從Windows資源管理器Windows 如果在歡迎面板中選擇了SetupBest 讓工程向?qū)呙璋惭b程序那么當(dāng)操LinkTo值將顯示FileLinkTo值將顯示FileNotFound***,Add單擊AddFiles 瀏覽要添加到組件中的文件在Resulting 框中可以按住Shift或Ctrl鍵來選擇要添加到文件夾里的文件記住ApplicationComponents面板中的選項對組件中的每個文件都起作用右擊文件列表選擇Add相當(dāng)于單擊AddFiles按鈕Delete選中一個或多個文件單擊DeleteFiles 將其從組件中刪除在文件列表中單擊鼠標(biāo)右鍵并選擇Delete相當(dāng)于單擊DeleteFiles按鈕PropertiesSetKeySetKeyFileClearKey如果組件里不再需要鍵文件請單擊ClearKeyFile按鈕由于組件里只能有一個鍵文此按鈕只有在打開BestPracticesnotification并選擇了帶有警告圖標(biāo)的文件后才能使用單擊Details按鈕可以了解為何最佳實踐方案不包含此文件創(chuàng)建快捷圖3-9工程向 3-9所示快捷鍵與組件的鍵文件相聯(lián)系并于安裝了組件的功能部件后在目標(biāo)系統(tǒng)中生成通過該面板你可以在目標(biāo)系統(tǒng)的Start|Programs菜單中為Oto.exe文件創(chuàng)建快捷鍵請依次執(zhí)行以下步選中部件下拉列表中的Program_Executables注意這個部件的鍵文件提供了快捷單擊鼠標(biāo)右鍵選擇New 由于未指明快捷鍵的任何值組件的鍵文件Oto.exe Next繼續(xù)首先是在列表中選擇一個組件面板中所有的快捷方式都將對該組件起作用如果要為所有的文件生成快捷方式請重復(fù)以上步驟當(dāng)要向工程中添加新組件時請單擊Back按鈕退回到ApplicationComponents面板中在安裝時TargetTarget屬性可以使用standarddestinationfolders下拉列表中的<WindowsInstallerFolder>屬性替代指向目標(biāo)文件夾的硬編碼選擇新TargetTargetTarget的快捷方式只有選擇了ShortcutsExplorer里的快捷方式后這些選項才可用WindowsInstallerService無法辨認(rèn)單獨的.icoWindowsInstallerInstallShield將從你指定的可執(zhí)行文件中選用一個圖標(biāo)當(dāng)有多ShortcutsIcon域和Icon索引例如01表明文件里的第一個圖標(biāo)2是第二個3是第三個等等用負(fù)整數(shù)標(biāo)明源文件的標(biāo)識符例如 InstallShieldShortcut瀏覽器中的這個子列出了組件里現(xiàn)有的快捷方式以及程N(yùn)ewShortcut瀏覽器中選擇一個文件夾單擊NewShortcut按鈕設(shè)計快捷方式工程向?qū)⒁匀笔〉腘ewComponentnn為連續(xù)值命名新快捷方式既可以立即修改名稱RenameShortcut瀏覽器目前還不支持向Windows任務(wù)欄中添加快捷方式在Shortcut瀏覽器上單擊鼠標(biāo)右鍵選擇NewShortcut也可添加新的快捷方式NewShortcut瀏覽器里選擇一個文件夾單擊NewFolder生成一個新程序文件夾當(dāng)安裝此組件時該文件夾將被安裝至目標(biāo)系統(tǒng)中工程向?qū)⒁匀笔〉腘ewFoldernn為連續(xù)值命名新文件夾可以馬上修改名稱也可以稍后單擊Rename修改目前還不能向WindowsShortcut瀏覽器上單擊鼠標(biāo)右鍵選擇NewFolder也可Shortcut瀏覽器里選擇一個文件夾或快捷方式單擊Delete可將其從安裝工程中刪除在Shortcut瀏覽器的文件夾或快捷方式上單擊鼠標(biāo)右鍵選擇Delete也可將其刪除配置表信圖3-10工程向 RegistryData面該面板用于向表添加信息或向組件的數(shù)據(jù)包中添加REG文件如圖3-所示只有當(dāng)ApplicationComponents常簡單不需要象別的程序那樣修改表因此在RegistryData頁面上單擊Next REG的每個組件都執(zhí)行該步驟使其都有與之關(guān)聯(lián)的REG文件當(dāng)需要向工程中添加新組件時請單擊Back按鈕退回到ApplicationComponents面板REGREG個REG文件也可以稍后再在InstallShield表瀏覽器里導(dǎo)入追加的REG文件定義用戶界 Dialogs面 框這些此面板提供用于安裝隊列的預(yù)定義安裝框只有在向?qū)Ю锊輸M了一個工程后才能看到這一系列框如果只是對現(xiàn)有的工程進(jìn)行編輯將無法選擇框辦法是必須進(jìn)入 框這些Next繼續(xù)對e ePanel選項安裝時將顯示標(biāo)準(zhǔn)歡迎面License選擇LicenseAgreement InstallShield為EULA提供了位置標(biāo)志符用來在框編輯器里指定文件以及編輯帶滾動條的文本框中的FileName屬性Customer選擇CustomerInformation可顯示框來提醒用戶進(jìn)行 用戶需要多用戶的系統(tǒng)比如Windows2000 SetupType/CustomSetupCompleteSetup完全安裝安裝所有必需的功能部件和CustomSetup自定義安裝用戶可以要安裝的部件只有戶選擇了CustomSetup后才顯示CustomSetup框Readyto選擇Readyto 保存工程創(chuàng)建發(fā)布媒介測試安裝程序圖3-12工程向 WizardSummary面WizardSummary讓你回顧工程向?qū)е兴龅娜吭O(shè)置以便做最后的修改如圖3-12所示在這里你可以第一次保存自己的新安裝程序其后綴為.ism選擇其中的一個選 并單擊 o.ism將保存在缺省設(shè)置的<我的文這里可以創(chuàng)建首個安裝包發(fā)布媒介或者保存新工程選中SaveprojectsettingsandbuildareleaseFinish有關(guān)創(chuàng)建的情況以及任何錯誤或警告都將顯示在Output窗口中此時新安裝工程在Project視圖中打開你可以做進(jìn)一步修改在工作區(qū)中點擊快捷鍵以MSI包和數(shù)據(jù)文件位于<我的文檔SaveprojectsettingsandbuildaFinish認(rèn)可總結(jié)保存InstallShield工程.ism文件,并編譯安裝程序包.msi文件Output窗口里的編譯統(tǒng)計則包含了編譯中所有的錯誤和警告此時新建的安裝工程將自動打開Project視圖以便做進(jìn)一步修改可以單擊的RunSetup按鈕Justsaveproject選擇此選項單擊Finish認(rèn)可總結(jié)并保存InstallShield工程.ism文件新建的安裝工程將打開Project視圖以便做進(jìn)一步修改小利用InstallShieldforWindowsInstaller的向?qū)覀円呀?jīng)成功地在十內(nèi)做出了自己的第一個安裝程序包通過這個例子我們了解了工程向?qū)У墓δ芴卣鬟@是一個非常重要且簡單易用的工具同時我們還了解了有關(guān)安裝工程的一些概念 創(chuàng)建功能部件組件結(jié)構(gòu)快捷鍵和用戶界面等等為了進(jìn)一步了解工程向?qū)绾卧诩砷_發(fā)環(huán)境中生成視圖以及如何對工程做進(jìn)一步更改可以單擊工作區(qū)視圖欄中的所有快捷鍵第4 國際版本安裝軟件制作技如何制作國際版本安裝為計算機(jī)行業(yè)的標(biāo)準(zhǔn)和習(xí)慣都是建立在英語的基礎(chǔ)之上特別是像中文這樣的雙字節(jié)文字在使用中經(jīng)常會導(dǎo)致亂碼為此國內(nèi)不少人對軟件和安裝程序進(jìn)行漢化處理結(jié)果費時費工且效果并不理想然而InstallShield公司推出的安裝軟件解決方案為根本上解決這一難題提供了強(qiáng)有力的支持使得我們不僅能夠制作出中文內(nèi)核中文版安裝軟件還能同樣際的需求InstallShield使得這一開發(fā)長期有效沒有風(fēng)險一些圖標(biāo)和位圖在一些國家受到喜愛在另一些國家可能成為用使用英語字符串通常要比其他語言簡短翻譯后的字符串大增長30-40% 為了獲得InstallShield安裝軟件制作支持需要在安裝InstallShieldforWindowsInstallerInstallShieldProfessional2000國際版本東方語言包以便支持像中文這樣的雙字節(jié)字如圖4-1圖4-2所示4-2選擇安裝InstallShieldProfessional2000InstallShield2000對語言的支持現(xiàn)在制作用于在全球發(fā)布的安裝軟件變得更加容易可以為某一地區(qū)制作單一語種的安裝軟件也可以制作滿足某些條件的多語種安裝軟件總之你可以使得安裝軟件的界面更加友好使用更加簡單安裝所需語言的國際版本語言包持在許多操作界面上有關(guān)該語言的選擇框或功能項將無法使用有關(guān)InstallShield2000對國際化語言的支持請查閱installshield相關(guān)網(wǎng)站國際版本安裝軟件制作的關(guān)鍵在于定制與該語言代碼相關(guān)的資源和安裝文件安裝軟件發(fā)布時安裝資源必須是與該語言一致的版本包括運行程序幫助文件用戶協(xié)議等這些資源應(yīng)該在制作安裝軟件時準(zhǔn)備好并進(jìn)行與該語言相關(guān)的必要設(shè)置同時還必須考慮到目標(biāo)系統(tǒng)的語言環(huán)境比如目標(biāo)操作系統(tǒng)對該語言的安裝軟件及所安裝的應(yīng)用程序是否支持如果不支持則要考慮使用與語言環(huán)境無關(guān)的安裝軟件或需要安裝的應(yīng)用程序InstallShield2000在很多設(shè)置上支持語言無關(guān)選項LanguageIndependent 裝軟件中準(zhǔn)備多個語言版本的應(yīng)用程序并針對不同的目標(biāo)系統(tǒng)的語言環(huán)境根據(jù)條件選擇—指定安裝軟件要使用的語言版本可以是一種也可以是多種語言通過國際版本語言包就可以獲得InstallShield支持的對應(yīng)語言字符串表這樣使用通過向安裝工程的安裝語言屬性中添加新的語種或使用安裝向?qū)е械陌惭b語言設(shè)置可省語言二字符串表為安裝程序運行時使用的語言提供了可用的字符串資源這些資源包括InstallshieldInstallshield已經(jīng)翻譯好的字在制作安裝軟件的任何過程細(xì)節(jié)中須使用字符串的標(biāo)識ID該標(biāo)識會自動字符串表中的值所以完全不必?fù)?dān)心不同語言版本對安裝程序設(shè)計的影響有一個唯一的值你可以定義字符串的值和注釋每當(dāng)在安裝工程中包含一種語言InstallShield就為這種語言創(chuàng)建一個的字符串表表中包括了所有現(xiàn)存的字符串標(biāo)識你自己翻譯還可以修改系統(tǒng)翻譯好的值表找到所需字符串表的文本文件點擊Open按導(dǎo)出的字符串表是用制表符Tab鍵分割的文本文件同樣格式的文件也可以導(dǎo)入符串表要導(dǎo)入字符串表Open按鈕三為每個支持安裝的語言修改用戶框如果有必要的話當(dāng)把新的語種增加到安裝工程中時InstallShield提供翻譯成該語種的標(biāo)準(zhǔn)框但是你仍然可以在框編輯器中修改這些框以便更加適合所選擇的語言要更改框的界面必須首先Workspace工User要查看這些框點擊Workspace工具條中的UserInterface按鈕展開樹中所有節(jié)點如圖4-3所示雙擊框名稱可以看到其所支持的語言要更改框的界面必須要更改框的界面必須首先Workspace工User圖4-3查看框所支持的語其變化結(jié)果將被應(yīng)用到所有其他特定語言的框中但對特定語言的框的修改僅應(yīng)用到該框的當(dāng)前語言版本中而對缺省語言版本的改動將不再影響這個改動過的特定語言版本假如英語是缺省語言你在這個英語版本的框中增加了文本框和按鈕于是英文和中文的框都共享了這一變化比如都使用了共同的文本框長度和寬度此時在中文版中你可能發(fā)現(xiàn)文本框中文字符太大如果你在中文版的框中進(jìn)行修改那么中文版的框?qū)⒉辉倥c英文版共享同一屬性其所有資源將與英文版本分離開以后當(dāng)你再更改框控件中的字符串標(biāo)識時需要在中文版和英文版中分別更改如果你僅僅在英文版中調(diào)整文本框的大小要同時安裝系統(tǒng)在框中使用的字符串來源于不同語言的字符串表如果你為某個控件選擇了使用本地化語言的字符串顯示的字符串值就是來源于該種語言的字符串表一旦在該控件屬性頁中編輯字符串的值你實際上編輯的是該字符串標(biāo)識在其字符串表中的值其他資源如位圖多演示等都是以文件形式輸入到安裝打包中的既然它們也是與不同的語言有關(guān)所以需要為不同的語言提供不同版本的文件并記住修改相應(yīng)文件名稱由于同樣的信息翻譯成不同的語言可能造成文字長度上的不同所以在框中一些言文字長度的增加而調(diào)整布局的情況不過對特定語言框的調(diào)整不會影響到其他語言框四處理依賴于不同語種的組件的則需要將這個組件標(biāo)記為該特定語種SetupDesign選擇該組件適用的語種可以多選接下來就可以使用發(fā)布向?qū)нM(jìn)行安裝打包向?qū)儐柲阈枰男┱Z種如果你不選擇要包含的語種發(fā)布程序?qū)⑴c組件的特定語種無關(guān)即同時打包那些依賴于和不依賴于特定語種的所有組件但是如果在向?qū)У腞eleaseFiltering面板中選擇語種那么只有依賴?yán)缒憧梢詣?chuàng)建一個支持多語種組件的安裝工程通過發(fā)布向?qū)н^濾不需要的語種組件分別生成各個單一語種的安裝軟件另外還有一種控制特定語種的組件安裝到目標(biāo)系統(tǒng)的方法是在組件的Condition屬性中進(jìn)行系統(tǒng)語言代碼SystemLanguageID的判斷這樣可以保證目標(biāo)系統(tǒng)的語言環(huán)境例如對于日文的組件在該組件的Condition屬性加上SystemLanguageID=1041如果目標(biāo)系統(tǒng)不是日文Windows操作系統(tǒng)該組件則不會被安裝否則盲目安裝后可能導(dǎo)致五選擇發(fā)布安裝軟件的語言以為安裝軟件運行設(shè)定一種語言也可以設(shè)定多種語言供用戶選擇但后一種情況以上5個方面包含了安裝軟件制作的關(guān)鍵步驟具體的應(yīng)用實例下一節(jié)將詳細(xì)討論但是在制作一些雙字節(jié)語言中文日文韓文希臘文等的安裝軟件時還要注意為這些語言包含代碼頁如果在中文Windows系統(tǒng)中安裝使用中文版安裝軟件當(dāng)然不會有問題對于WindowsNT4.0單擊 國際版本安裝軟件制作InstallshieldOto的現(xiàn)成例子我們將為該應(yīng)用裝程序制作一個支持簡體中文日文和英文的國際版本安裝程序通過該實例下面將循序漸進(jìn)分步驟說明第一步打開 o.ism是Installshield自帶的一個工程模板首先需要打開這個模板它存放在<InstallShieldforWindowsInstaller安 o\ProgramFiles中可以用第二步4-4要想創(chuàng)建一個國際版本的安裝程序首先要選擇合適的語種要為你的安裝程序添加語種請進(jìn)入ProjectProjectPropertiesSetupLanguagesproperty將顯示可選擇的語言類型系統(tǒng)支持的語種后面會出現(xiàn)深灰色的圖標(biāo)若是淺灰色的圖標(biāo)則表明該語言系統(tǒng)不支持如果你要的語種未被列出請查詢InstallShield/intliswi/lang/ 為安裝程序添加簡體中文ChinesePRC language左側(cè)的復(fù)選框與此同時如圖4-4所示在右側(cè)的Project視圖中可以看到Chinese 和 United請注意,制作國際版本的安裝軟件時InstallShieldforWindowsInstaller已存在的安裝工程中的字符串表因此你需要自己將某些語種導(dǎo)入列表步驟如下右擊Project視圖StringTables下的ChinesePRC 從選項列表中選擇ImportString進(jìn)入<InstallShieldforWindowsInstaller安 件將出現(xiàn)一個框詢問是否要覆蓋當(dāng)前字符串表 單擊Yes第三步自動生成字符串表的條目在這些區(qū)域中輸入文字時將自動生成字符串表的對應(yīng)條目SetupDesign-GlobalDefaultProgram的功能部件雙擊DisplayName屬性輸入程序文件如果在屬性框的其他地方點擊你將發(fā)現(xiàn)已輸入的文字前加上了{(lán)NEW_STRING1}StringTable頁可查看缺省語種的完整字符串表如圖4-5所示單擊屏幕底單擊屏幕底部的String 已輸入的文字前加上了{(lán)NEW4-5Program_Executables組件含有Oto.exe文件的快捷鍵選擇該組件子節(jié)點下的Shortcuts圖標(biāo)在Shortcuts視圖中展開程序菜單的子并單擊Oto快捷鍵快捷當(dāng)前的DisplayName屬性為空如果不輸入一個顯示名快捷鍵的名稱將與顯示名一致因此既然快捷鍵名為Ot o那么顯示名也為Ot 表因此無法定位但是如果為快捷鍵輸入一個顯示名所有字符串表中都將出現(xiàn)一個新項目雙擊DisplayName屬性并輸入 如果在屬性框的其他地方點擊你將發(fā)現(xiàn)輸入的文字前加上了{(lán)NEW_STRING2}前綴如圖4-6所示第四步顯得沒有必要相反你可以一次創(chuàng)建多次使用ShortcutDescriptionShortcutDescriptionStringTable 最后右擊新字符串表條目從彈出菜單中選擇Select ShortcutDescription的值輸入如圖4-74-7第五步序添加三個新組件每個組件包含一個帶有所有支持語言版本的Readme文件分別對應(yīng)于英語中文和日文執(zhí)行以下步驟添加組件SetupDesign-Global輸入 作為組件重復(fù)以上步驟兩次將這些組件分別命名為 和準(zhǔn)備好已經(jīng)翻譯過的Readme文件假設(shè)這些文件位于<InstallShieldforWindowsInstaller安裝 o\DataFiles\Readme.執(zhí)行以下步驟向English_Readme選擇 組 并單擊Filesshortcut右擊文件列表并選擇導(dǎo)入 4-8所示對Japanese和Chinese 和第六步 單 在Add 單 在Adda 件條件4-9點擊Chinese_Readme組件并從右邊的屬性頁中選擇Condition屬性單擊屬性頁下方的名為ConditionBuilder的 開始創(chuàng)建組件條件如圖4-9所示在AddapropertySystemLanguageID按下Add在Addanoperator區(qū)域中選擇等號 按下Add將此運算符也添加到組件在編輯框中你將看到SystemLanguageID=它表明你已經(jīng)做好了選擇接20522052是簡體中文的標(biāo)識符由于這個組件只有在等式成立時才被安裝即目標(biāo)機(jī)器將把簡體中文作為缺省語言因此如果某臺機(jī)器使用的不是簡體中文該組件將不會安裝按以上步驟為 組件添加條件不同的是用1041來代替事實上人們無法讓安裝軟件和應(yīng)用程序支持世界上所有的語種也許你希望能夠選擇一種語言作為缺省語種在本例中缺省語種是英語因此使用English_Readme組件的單擊English_Readme組件選擇右邊屬性框中的Condition屬性單擊屬性單下方的ConditionBuilder 開始創(chuàng)建新的組件條件最后的條件如下所示按此邏輯如果目標(biāo)機(jī)器使用的語言不是日語或簡體中文那么將會自動安裝 第七步本地化字符串4-10本地化字符串簡體中文在建立安裝程序之前必須定義作為功能部件名稱快捷鍵名稱和對快捷鍵的描述而輸入的英語字符串幸運的是Installshield將為你做這些工作你要做的只是在字符串表中輸進(jìn)入Project視圖在樹型結(jié)構(gòu)中選擇StringTables下方的ChineseRPC如圖4-10識符為相關(guān)聯(lián)的字符串表輸入以下文字 接著單擊日語的字符串

更輕而易舉Installshield已經(jīng)完成了大量的缺省字符串翻譯工作第八步編譯安裝程現(xiàn)在安裝程序已經(jīng)完際化了隨時可以試運行然而在試運行之前必須對它編譯單擊中的發(fā)布向?qū)О粹o進(jìn)行編譯兩個界面中確定編譯和發(fā)布名稱除了SetupLanguages面板之外保持其他界面的缺省設(shè)置此界面允許你選擇安裝程序語言只有Projectproperties中指定的語言才會出現(xiàn)在候選列表中你可以從英語日語和簡體中文中選擇如圖4-11所示選中每種語言后面的復(fù)選框即可確認(rèn)你已選中了DisplaytheLanguageSelectiondialog選項此框允許最終用戶選擇他們希望在運行安裝程序中使用的語言單擊Next繼續(xù)向?qū)uild編譯你的.msi文件第九步運行安裝程序圖4- 選擇安裝程序的語言單擊工具條中的運行按鈕,運行你的安裝程序出現(xiàn)的第一個框是選擇安裝程序的語言框如圖4-12所示此框?qū)⒁阅阍O(shè)定的缺省語言顯示選擇簡體中文并單擊確定 此后每個框都將以簡體中文顯示請注意,一旦以某種語言運行了一個安裝程序WindowsInstaller將自動保存此信息并總是以此語言運行安裝程序而不管你在LanguageSelection框中作過什么設(shè)置決此問題只需進(jìn)入Dialogeditor并重新調(diào)整大小即可如果進(jìn)入CustomSetup界面在簡體中文中它被稱為自定義安裝,你將發(fā)現(xiàn)功能部件名稱現(xiàn)在被改為程序文件如圖4-13所示本地化的字符串表已包含在安裝程序中了圖4-13本地化的自定義安 界第十步測試快捷鍵和Readme打開開始菜單并選擇程序你將發(fā)現(xiàn)Oto的快捷鍵被顯示為中文奧賽羅如圖4-14所示在運行Windows2000的機(jī)器上你能夠看到用簡體中文顯示的對快最后進(jìn)入Oto的安裝它應(yīng)該位于<ProgramFilesFolder>\ShakespeareInc\Oto你安裝的readme文件被稱為Chinese_readme.txt圖4- 開始菜單程序中顯示的快捷鍵為中 如果應(yīng)用程序擁有不同的語言版本你將需要創(chuàng)建指定語種的組件以便確定系統(tǒng)能夠安裝正確的版本 雖然系統(tǒng)已經(jīng)翻譯了缺省的字符串表你仍需添加一些自定義的字符串這些字符串必須在你使用之前翻譯好 記選擇發(fā)布所用的語言另外還要包含進(jìn)LanguageSelection框和Setup.exe所有這些選項都可通過Releasewizard設(shè)置當(dāng)然這里只是一個整體介紹InstallShield提供了的好方法來制作國際版本安裝程序如使用基于語言的發(fā)布標(biāo)記和數(shù)據(jù)篩選想要進(jìn)一步了解可以InstallShield第5 數(shù)據(jù)庫應(yīng)用程序安裝軟件制作技利用前面所學(xué)的InstallShield你已經(jīng)能夠開發(fā)出功能足夠強(qiáng)大的安裝程序不過如果ODBC敗筆更何況大多數(shù)用戶對數(shù)據(jù)庫設(shè)置一竅不通即使是很有經(jīng)驗的計算機(jī)人員在設(shè)置ODBC時如OracleSQLServer等常常也一籌莫展所以制作能自動配置數(shù)據(jù)庫連接的安裝軟件與其說是表現(xiàn)你非凡的開發(fā)技巧倒不如說是為了解決實際安裝中的麻煩不然你會被用戶的求助搞得焦頭爛額本章先介紹數(shù)據(jù)庫應(yīng)用程序及其安裝要點然后講解如何使用ISPro2K制作數(shù)據(jù)庫應(yīng)用程序安裝軟件的實例數(shù)據(jù)庫應(yīng)用程序及其安裝數(shù)據(jù)庫應(yīng)用程序的一個數(shù)據(jù)庫應(yīng)用程序在邏輯上通常由兩部分組成一是數(shù)據(jù)庫鏈路二是用戶界面通常我們把實現(xiàn)數(shù)據(jù)鏈路的組件與實現(xiàn)用戶界面的組件分開凡是數(shù)據(jù)組件最好放在數(shù)據(jù)模塊上這樣能夠保證應(yīng)用程序具有一致的用戶界面如果把設(shè)計好的數(shù)據(jù)模塊和窗體加到對象庫中在創(chuàng)建一個新的數(shù)據(jù)庫應(yīng)用程序時就不必什么都從頭開始這樣不但能夠提高編程效率而且能夠保證程序具有一致的風(fēng)格數(shù)據(jù)庫應(yīng)用程序的體系結(jié)構(gòu)取決于是使用本地數(shù)據(jù)庫還是數(shù)據(jù)庫取決于同時在不同的數(shù)據(jù)庫應(yīng)用程序的結(jié)構(gòu)體系中數(shù)據(jù)庫的連接最常用的方式是通過ODBC數(shù)據(jù)源來實現(xiàn)的ODBC是開發(fā)與數(shù)據(jù)庫有關(guān)的應(yīng)用程序經(jīng)常要用到的外部數(shù)據(jù)連接之一利用ODBC能夠編寫客戶應(yīng)用程序使用來自許多不同數(shù)據(jù)源的宿主數(shù)據(jù)因此能夠建立不依賴于數(shù)據(jù)的應(yīng)用程序ODBC廣泛地應(yīng)用于多種不同的應(yīng)用程序中

溫馨提示

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

最新文檔

評論

0/150

提交評論