版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
幾乎所有的程序員在發(fā)布其軟件產品時都過軟件安裝的問題隨著軟件技術的日趨復雜以及軟件產品對系統(tǒng)環(huán)境的依賴增加如何使自己的軟件產 本文就安裝軟件制作技術以及該技術的最大供應商InstallShield公司的InstallShield工具進行了深入淺出的討論并重點介紹了InstallShield為適應微軟WindowsInstaller標準而 推出的ISWI本文除了給出使用ISWI快速開發(fā)安裝軟件的應用實例外還詳細介紹了程序員最關心的如何制作國際版本安裝讀者如果有深入了解InstallShieldInstallShield5快速制作安裝盤中國水利水 InstallShield2000使用詳 機械工 軟件安裝標準安裝機制國際版本數據庫對象組件功能部件表WindowsInstaller InstallShieldProfessionalVersion6 InstallShieldforWindowsInstaller目第1 第2 Installshield產品概 ISPro6的特 ISWI的特 第3 保存工程創(chuàng)建發(fā)布媒介測試安裝程 小 第4 第5 基于BDE的Oralce數據庫應用程序安裝軟件制 基于ODBC的Access數據庫應用程序安裝軟件制 第1 軟件安裝和安裝軟件制計算機應用軟件的發(fā)展可以大致分為DOS時代Windows時代和Internet時代這三個時代的軟件分別有著自己獨特的特征如DOS時代的單機命令行操作Windows時代的多用戶圖形界面和Internet時代跨平臺跨地區(qū)的網絡應用在這三個不同的時代不僅軟件自身發(fā)展經歷了前所未有的巨大變化而且用戶安裝軟件的方式也在發(fā)生著深刻的變化DOS時代我們只需將應用軟件拷貝到計算機中即可通過命令行運行但我們很難想象在Windows時代再繼續(xù)使用Xcopy之類的命令來為用戶安裝軟件Windows應用程序的許多諸如組件修改 表配置ODBC等復雜操作已經無法再交給用戶自己完成雖然在Internet時代基于WebBrowser/WebServer的應用盛行讓人們一度相信瀏覽器的使用免除了客戶端軟件安裝的麻煩但服務器端的軟件安裝卻日趨復雜在許多領域對安裝軟件的要求甚至更為苛刻比如要求跨平臺跨操作系統(tǒng)安裝按需安裝即時激活組件配置和網絡部署等于是尋找和使用功能強大的安裝軟件開發(fā)制作工具就成為每一個開發(fā)人員和軟件商迫切關心的問題那么怎樣才能制作出更復雜更創(chuàng)意的一流商業(yè)安裝軟件呢業(yè)界安裝軟件的工業(yè)標準是用該軟件的心情以及他們對該軟件開發(fā)機構的看法為得到一個好的第一印象安裝軟件必較好地處理應用程序中使用的第部件如題 WindowsInstallerWindows認證標志的安裝軟件標準凡是符合該認證標志的軟件產品都可以Windows2000和Windows98me的功能如果要申請該認證標志應用程序必須使用WindowsInstaller來安裝和卸載WindowsWindows2000應用程序規(guī)格說明桌面應用程序ApplicationSpecificationforWindows2000ForDesktopApplications技術文檔中提煉出來的與程序安裝有關的要求必須將應用程序的缺省安裝目標文件夾設定為\ProgramFiles該名稱可能會因不同的語言文字及驅動器而不同COM服務器必須是一個組件的單獨文件并且是鍵文件key安裝程序必須能在完全圖形化的用戶界面下正確運行即能使用基本的用戶界面 CD-ROMCD-ROM首次插入時支持自動運行支持安裝程序卸載功能能出現(xiàn)在Windows安裝程序必須能夠防止組件文件被舊版本覆蓋實際上微軟建議不要直接把任何東西安裝到Windows的system文件夾中Windows為什么選用InstallShield制作安裝軟InstallShield軟件公司是一家專業(yè)從事安裝軟件開發(fā)工具生產的著名軟件公司該公司由VireshBhatia和RickHarold于1987年創(chuàng)建公司自創(chuàng)建之初就以獨立軟件供應商的角色致力于高可靠性軟件開發(fā)工具的研發(fā)并在軟件及數字打包和發(fā)布領域有突出的貢獻其軟件安裝標準和產品被各大商業(yè)軟件供應商廣泛使用自Windows軟件開發(fā)之初InstallShield軟件公司就已經專注于通用安裝軟件制作工具的開發(fā)并解決Windows操作系統(tǒng) 以滿足開發(fā)人員及最終用戶的需要其主打產品InstallShield為滿足各種Windows平臺和不同的安裝需求提供完整的軟件安裝解決方案并且已經形成人們所熟悉的一套軟件安裝的工業(yè)標準InstallShield的產品自2000版本開始還增加了對WindowsInstaller服務可以開發(fā)完全符合Windows認證標志要求的安裝軟件目前全球絕大多數主流商業(yè)軟件都使用了InstallShield產品來開發(fā)安裝軟件特別是該產品對安裝軟件的支持使得制作本地語言和國際版本的安裝程序不再是一個難題特別是對東方國家計算機中使用的雙字節(jié)字如中文日文韓文等支持為我們制作全中文的安裝軟件提供了優(yōu)勢國內許多著名的商業(yè)軟件如金山公司的WPS 都是用InstallShield制作的雖然許多應用程序開發(fā)系統(tǒng)都提供了的安裝軟件制作工具如VisualBasic和PowerBuilder等使用這些安裝工具的唯一好處是可以比較容易地制作由本系統(tǒng)開發(fā)出的應用程序的安裝軟件因為它們大都會自動找到并配置相關的動態(tài)庫操作也比較簡單遺憾的是用它們制作出的安裝軟件功能單一界面單調并且?guī)в性_發(fā)系統(tǒng)產商的印記容易讓別人一眼就看出你的應用程序是用什么工具開發(fā)的這些都是安裝軟件制InstallShield在安裝軟件制作領域的成功許多公司紛紛采用InstallShield的技術為自己的開發(fā)工具提供安裝軟件制作支持于是出現(xiàn)了許多InstallShield版本如用于DelphiInstallShieldExpressForBrolandDelphiVCInstallShieldExpressForVC++認識軟件安裝機InstallShield的安裝機InstallShield軟件安裝工作的實質是把需要安裝的文件傳輸到指定的系統(tǒng)中應用文件自然會因自身的相似特點而歸類如系統(tǒng)動態(tài)庫DLL可執(zhí)行文件幫助文件等以共享會不會存在加鎖問題是否壓縮使用何種操作系統(tǒng)或支撐平臺使用何種語言作為安裝軟件的制作者須充分考慮安裝文件的不同特點并合理設計文件組件部件和子部件為安裝文件和相關軟件打包提供了極大的靈活性部件和子部件在以用戶安裝部件由不同的文件組組成它作為獨立的安裝模塊可以供用戶進行選擇性安裝以如果你的安裝軟件是提供一套產品就可以把這套產品中的每一個產品作為一個部件供用戶選擇安裝比如微軟的Office套件就把Word 立的安裝部件由用戶選擇每一部件又可以包含不同的子部件這樣可以提供用戶的選擇項InstallShield可以使你更自由的設計部件和子部件以滿足不同的安裝配置需要為了減少用戶自行選擇安裝部件的麻煩我們可以向用戶建議不同的安裝方案供用戶安裝所有的圖庫和詳細的幫助于是根據不同類型用戶的不同需要設計具體的方案來組織安裝部件使之成為一種可選擇的安裝類型就顯得特別重要組織安裝部件時可以把不同的安裝部件按照實際的用戶類型劃分為幾種安裝類型用行令人困惑的選擇和配置例如你可以創(chuàng)建服務器客戶機/管理員模式和客戶機/一般用戶模式等安裝類型也可以創(chuàng)建最小安裝典型安裝和完全安裝等安器那些部件安裝在客戶機以及那些用戶選擇那些部件而進行艱難煩瑣的選擇InstallShield可以讓你把安裝使用的文件文件組部件和安裝類型作為模塊自由設計在制作安裝軟件的過程中你必須先把獨立的安裝需要的文件分配到文件組中然后把文件組程序的時候用戶就可以選擇不同的安裝類型和想要安裝的各個部件及子部件了1-11-11-1A可能是一個最小安裝類型它B型都可以靈活定義然后通過互相間的關聯(lián)設置來實現(xiàn)最終目的裝的應用程序或產品的一部分當安裝程序從用戶電腦安裝或卸載一個組件時總將它看成選擇主要決定于用戶對應用程序某些功能的偏愛鑒于組件通常會被程序或產品共享所以 組件的例子包括單一的文件一組相關的文件COM對象參數鍵快捷方式資源一個 下的庫以及諸如MFC或DAO中組件ID這一列標明的組件IDGUID來每一個組件兩個共享同一個組件ID的組件安裝到用戶的電腦上因此許多功能部件或應用程序可以共些組件因為組件通常是共享的安裝包的開發(fā)人員編寫某個功能部件的組件或應用程序時必須遵循嚴格的規(guī)定這對于WindowsInstaller計數機制的正確操作是非常重要的這些規(guī)定主要是每個組件必須被分別在單個文件夾中文件表條目快捷方和子級的繼承關系也就是說如果一個子功能部件被安裝了其相應的父功能部件也就自動WindowsInstaller 在獲取階段的一開始應用程序或用戶通知Installer安裝某個功能部件或者應用程序Installer就順著安裝數據庫中的隊列表里所標明的動作一步步執(zhí)行 在執(zhí)行階段里Installer把信息傳送給具有相應權限的過程處理并運行腳回退如果安裝不成功Installer將恢復計算機的初始狀態(tài)Installer運行安裝時它能自動生成了一個回退除了生成回退Installer還保存了安裝過程中它所刪除的每個文件的副本這些文件被保存在隱匿的系統(tǒng)中一旦安裝完成回退和這些保存的文件則被全部刪除掉能力結合到自己的應用程序中下圖1-2顯示了應用程序對功能部件的請求安裝過程1-2圖標1-3ISWI設計中的安裝文件組件功能部件結構InstallShield2000InstallShieldforWindowsInstallerISWI使用了安裝文件組件功能部件的結構取代了傳統(tǒng)的文件組安裝部件安裝類型結構如圖1-3所示該結構適應了微軟的WindowsInstaller服務的需要其包容性更加廣泛其中安裝文件包含了文件表數據快捷方式高級設置與 +ODBCNT服務等有關組件類似于原來的安裝部件但可以通過融合模塊增加對第組件技術的支持功能部件雖然也類似于原來的安裝類型但更突出了要安裝的程序功能該用戶的安裝選擇其中包括了傳統(tǒng)安裝中沒有的應用程序功能亦稱即時激活功能即可以不安裝程序而只將應用程序的圖標放置在桌面上等到用戶需要時雙擊圖標即可安裝圖1-4第2 Installshield產品概InstallShieldInstallShieldDemoShield前者用于安裝軟件的開發(fā)后者則用于軟件產品的演示InstallShield軟件公司將這兩種產品結合起來作為軟傳統(tǒng)和現(xiàn)InstallShield軟件公司以開發(fā)InstallShield安裝軟件制作工具起家其特有的InstallScript語言為安裝軟件的制作提供了廣闊的空間InstallScript類似于C語言并有自己的編譯器InstallShield在不斷的發(fā)展中除了將InstallScript的功能不斷加強外還增加和完善了大量的向導和函數以提高用戶的安裝軟件制作效率特別是為了支持像ODBC DirectX那樣的第技術InstallShield從InstallShield5.x的模板到InstallShield6.x的對象一直在作用心良苦的改進可以說InstallShield公司一直以其所擁然而InstallShield公司仍然著來自微軟的新微軟自Windows2000操作系統(tǒng)開始引入了WindowsInstallerWI服務使得用戶可以利用微軟提供的API函數構建符合微軟標準的安裝軟件并充用微軟WindowsInstaller服務提供的諸多好處這意味著微軟對Windows平臺上安裝軟件制作標準的新為了跟上安裝軟件制作技術的自然進化滿足用戶的需求并迎接新的 1999年9月InstallShield軟件公司宣布InstallShield2000專業(yè)版簡稱ISPro2K面世這是該公司首次將其軟件安裝開發(fā)工具劃分采用自身傳統(tǒng)標準的InstallShieldProfessional和采用微軟WindowsInstaller標準的InstallShieldforWindowsInstaller兩個不同版本為了滿足開發(fā)人員的高級安裝要求為目標ISPro2KInstallShieldProfessionalVersion6ISPro6InstallShield5.x的直接升InstallShieldforWindowsInstaller簡稱ISWI它支持新的WindowsInstallerWI服務該服務是為Windows2000設計的一個關鍵部件通過向開發(fā)人員提供創(chuàng)建更智能化更靈活更易管理的安裝軟件的系統(tǒng)服務來實現(xiàn)總成本 ISPro6InstallShieldProfessional5.x的升級版本用戶只能使用安裝語言創(chuàng)建安裝程序包InstallScript安裝語言是一種強大的智能許多步驟使用ISPro6可以在一個集中的地方創(chuàng)建組織編譯和測試安裝程序包ISPro6Windows95/98NT4的系統(tǒng)平臺中將創(chuàng)建自己的安裝引擎該引擎包括InstallScript語言及其編譯器以及和安裝軟件一起打包的運行時刻版InstallShieldProfessionalsetup.exeInstallShieldISPro6InstallShieldforWindowsInstallerWindowsInstaller服務支持WindowsInstallerWindows2000及其后續(xù)版本的一個要素如果操作系統(tǒng)使NT4Windows95/98WindowsInstallerWindowsInstallerWindowsInstallerAPIClientInstall和一個InstallService它們可以作為WindowsNT服務程序以提升的管理權限運行這樣的好處是需要管理權限的安裝程序可以由一個標準用戶來運行WindowsInstaller服務處理的文件和設有了WindowsInstaller服務操作系統(tǒng)可以所有安裝的應用程序和為多個應用程序共享的管理組件新的服務使安裝過程更為輕松它使得用戶對應用程序管理器有了更全面微軟認為增加WindowsInstaller服務的目的是為了讓使用其操作系統(tǒng)的計算機用戶減少TCO WindowsInstaller服務的加入是Windows操作系統(tǒng)體系的一個巨大進步然而這個新的服務程序并不是安裝程序的開發(fā)環(huán)境開發(fā)者仍然需要一個像ISWI這樣的環(huán)境以WindowsInstaller文件格式十分復雜想要了解其中的細節(jié)和手工處理數據庫需要大量的時間ISWI有自動的向導和功能強大的特性例如全屏框編輯器動態(tài)文件以SKUWindowsInstaller的安裝軟件使用ISWI用戶可以很容易地生成符合低TCOWindowsInstaller功能部件并編譯出符合Windows2000ApplicationSpecification要求的安裝程序包ISPro6的特使用ISPro6可以制作出用戶所熟悉的復雜的工業(yè)級安裝軟件以體現(xiàn)工作的一貫性測你的安裝需求使你從安裝結構的底層復雜性中出來并幫助你避免出現(xiàn)問題ISPro6Windows環(huán)境下安裝軟件的易用性和高效性以下是ISPro6的主要新增特點部件的安裝和卸軟件的安裝和卸載進行的控制目前多數應用程序僅提供典型安裝簡潔安裝和自定義安裝即使自定義安裝對安裝內容的控制也很有限而卸載程序時也嚴格限制為卸載全部的應用程序如果想創(chuàng)建一個以上限制的安裝程序則需要進行大量的如圖2-1所示部件的安裝和卸載功能使得開發(fā)人員提供的安裝選擇變得輕而易圖2-1部件的安裝和卸載功能提供了的安裝選2-2InstallShield現(xiàn)今許多應用程序都要求對一些流行的第技術進行支持比如ODBC數據庫舉VisualBasicSQLserver數據庫相連的工作站上為了避免出錯失敗和打攪系統(tǒng)管理員在安裝過程中應付賬應用程序的安InstallShield以前的版本是通過使用預先寫好的模板讓開發(fā)人員放進他們的 需要進行定制來實現(xiàn)的盡管這樣節(jié)省了編寫代碼的時間但仍然需要諳悉第技術隨著InstallShield對象的引入開發(fā)人員現(xiàn)在可以與他們安裝程序中所包含的第技術完 只要把需要的對象放進你的工程中即可自動提供所需的支持對于那個應付賬應用程序來說開發(fā)人員只需放入ODBCSQLserver支持文件和表的設置情況當安裝程序需要隨著新版本的SQLserver升級時只要簡單地替換ODBC對象即可開發(fā)人員無需知道兩個版本間的差異以及如何從安裝中去掉舊的代碼當應用程序卸載時所有的文件和表中的設置一起清除干凈如圖2-2所示ISPro6包含了一組對象它們是ODBCOLEDAOVBMFCDCOMMDACRDOAccess97VBRuntimeDirectX6ConfigureNTServices今后InstallShield對象可以從InstallShield得到InstallShield將不停地更新并增加它們這意味著如果開發(fā)人員需要更換或升級一個對象以及需要一個新對象時可以立即它而不依賴于ISPro2K的版本開發(fā)人員可以容易地替換改對象并編譯所的安裝程序比以基于事件的模圖2-3基于事件的結如圖2-3所示ISPro6采用了與VisualBasicVB類似的基于事件的結構這意味著大多數的安裝程序不再需要InstallShieldProfessional早期版本必須的那么多文件與VB類似的結構也使得學習和使用語言非常容易ISPro6包括事先定義好的對所有安裝程序都適用的框架這個結構使得建立在事件的基礎之上并提供了在更次上對功能的把握ActiveDependency2-4ActiveDependency如圖2-4示有了ActiveDependencyManager 的幫助安裝程序的開發(fā)者再也不會遺漏某個DLL文件了ADM能自動識別與安裝工程有關的靜態(tài)和動態(tài)DLL文件這為安裝程序中的所有DLL文件提供了完美的解決方案ADM可以作為一個程序開發(fā)者加載ADM程序然后啟動應用程序確保所有的函數ADMDLL文件并通過ADM獨一無二的功能啟動一個框讓開發(fā)者添加或跳過單個DLL文件導入參Windows表非常復雜難于處理當安裝程序開發(fā)者手工添加參數時極易發(fā)生錯誤ISPro6通過自動導入參數解決了這個問題從表編輯器REGEDIT中導出格式正確的表文件并直接把這個文件導入安裝工程參數可以以標準REG格式在任何文本編輯器中創(chuàng)建檢查和修改隨后這個文本文件被直接導入到工程中編譯開發(fā)人員在對工程作過修改后不必再對整個工程進行編譯BuildMedia功能只編譯修ISPro6其他主要特ISPro6提供了動態(tài)文件連接使得開發(fā)者不需要工程中每個文件的變化通過動態(tài)文件連接在編譯時只要事先定義了路徑和通配符所有源文件就可以自動被包含進工程假新進行設定每一個變化動態(tài)文件連接可以保存修改次數并去除可能的錯誤ISPro6提供了全部的 語句包括超過300條預定義的與安裝有關的函數函數可以通過函數向導FunctionWizard加入或者手工加入 ISPro6有一個類似VisualC++的集成開發(fā)環(huán)境幫助開發(fā)者便捷地修改和組織安裝工程集成開發(fā)環(huán)境是一個有語法功能的編輯器通過InstallScript的語言可以完全控制安裝的過程ISPro6還提供工程向導ProjectWizard 用來加速開發(fā)進度使用向導只需九步即可創(chuàng)建好安裝程序MediaBuildWizard可以使安裝工程方便的指向某個或所有的發(fā)布 使用ISPro6可以將安裝程序放到一張或多張CD-ROM上或者自定義最大達到4GB的容量文件可以壓縮或不壓縮現(xiàn)在InstallFromTheWeb(IFTW) (PFTW)已經和InstallShieldProfessional6集成在一起可以在集成開發(fā)環(huán)境中調用這些InstallShield網絡發(fā)布工具還可以將工程信息導出IFTW單獨出售 InstallShield日志文件閱讀器InstallShieldLogFileViewer 和InstallShieldCabinet文件閱 前者用于瀏覽安裝時生成的卸載日志uninstalllog后者用于瀏覽打包在CAB文件中的文件組組件和安裝類型ISWI的特ISPro6類似ISWI也提供了方便易用的界面來創(chuàng)建強大而復雜的工業(yè)級安裝軟件微軟推出的Windows2000包含了為減少TCO而設計的眾多優(yōu)秀特性其中之一是WindowsInstallerWindows2000開發(fā)人員能夠創(chuàng)建復雜的智能化安裝軟件WindowsInstaller服務也支持Windows95/98/NT4Windows2000操作系統(tǒng)因此WindowsInstaller服務生成的安裝程序亦可以在使用這些操作系統(tǒng)的機器上運行ISPro6可以進行功能部件級的安裝或卸載和InstallShield類似這意味著可以只安裝或卸載應用程序中的一個部件或者是應用程序套件中的某個程序應用程序功能可以不安裝程序而只將應用程序的圖標放置在桌面上等到用戶需要時雙擊圖標即可安裝以便更好地保護用戶的系統(tǒng)否則殘留的文件或參數可能導致其他應用程序出錯WindowsInstaller服務是Windows開發(fā)環(huán)境WindowsInstaller服務并處理其數據庫中的一系列表通過這些表并利用上述的功能不必用到那些需要進行復雜而痛苦的手工處理的開發(fā)環(huán)境通過易用的界面強大的功能和有用的向導在開發(fā)者創(chuàng)建復雜的安裝程序時ISWI能夠對用于WindowsInstaller服務的表實現(xiàn)自動和高速處理ISWI使得開發(fā)人員不必熟知WindowsInstallerISWIWindowsInstaller框編輯2-5VB的話框編輯器Dialog功能強大的全屏幕框編輯器DialogEditor使得開發(fā)者創(chuàng)建和修改安裝用戶框非常容易如圖2-5所示框編輯器使用了與VB相似的界面包括創(chuàng)建窗口工具箱和屬性頁可以通過鼠標點擊完成對單個屬性進行添加編輯或刪除ISWI內含超過25個預先設定的框這些框也可以很容易地定制開發(fā)者導出與框有關的信息并把這些信息導入未來的工程中這能使得在安裝程序的多個應國際版本的支InstallShieldProfessionalISWI分為兩部分出售東方版和西方版兩部分加起來共有超過20種的語言支持InstallShield還為包括框ISWI國際版本文件這些文件可以自行編輯或者讓人翻譯編輯后的文件能導入到一個已有的工程或新工程中去比如你已經編輯了一些字符串新增的并打算將應用程序進行比如使用簡體中文日文西班牙文和意大利文方法很簡單首先用英語創(chuàng)建編譯和測試個或多個翻譯讓翻譯將你的文本文件譯為簡體中文日文西班牙文和意大利文版本而不必包括應用程序然后把翻譯好的文本文件導入到工程中SKUSKU管理器是一個省時省事的工具它使開發(fā)者能夠在一個工程中可以生成不同版本的應用程序比部件設置一下用戶定義標記user-definedflags當為工程編譯一個特別的發(fā)布版本時動態(tài)文件2-6如圖2-6所示和InstallShieldProfessional的早期版本相同為了讓開發(fā)者不必工程中每個文件變化ISWI也提供了動態(tài)文件有了動態(tài)文件只要事先定義了路徑和通配符所有的源文件在編譯時會自動包含到工程中假如沒有這項特性每當改變了件節(jié)省了時間并消除了可能的錯誤融合模塊的處融合模塊的處理允許開發(fā)者對諸如運行時刻引擎或那樣的數據元素打包以便在多個應用程序中使用與WindowsInstaller服務安裝程序包使用的標準MSI文件格式不同融合模塊的處理允許創(chuàng)建一個以MSM為后綴的子集這些文件包含文件文件快捷方組件向2-7WindowsInstaller快速創(chuàng)建一個組件如圖2-7所示ISWI組件向導支持包括COM服務器ODBC源Windows2000服務和服務控制以及字體在內的多種組件另外組件可以從基于微軟最佳實踐方針的文件池中自動生成最佳實踐方針得到InstallShield軟件公司的有力支持它包括了像每個組件只能有一個可攜帶的執(zhí)行文件以服務的功能使開發(fā)過程標準化工程向2-8工程向導是創(chuàng)建工程的得力工具開發(fā)者只需指定應用程序功能部件組件文件2-8所示這對來創(chuàng)建新工程然后再使用詳細的視圖來增強和定制安裝程序的每一部分最佳實踐向在創(chuàng)建工程時最佳實踐向導BestPracticeWizard在運行并自動提示開發(fā)者最佳的操作方案提示時向導出現(xiàn)一個框列出修改建議開發(fā)者可以選擇接受發(fā)布向發(fā)布向導是編譯安裝軟件的得力助手如圖2-9指定類型 功能部件進行分類見前述SKU管理器以便生成不同的安裝版本例如測試板試用WindowsInstallerWindowsInstaller服務時這樣做極為有益ISWI可在NT95/98上安裝WindowsInstaller服務2-9第3 十快速搞定安裝軟如果要制作普通的應用程序軟件安裝軟件實際上使用InstallShield要比我們還要簡單由于InstallShieldforWindowsInstallerISWI在國內介紹的比較少而且它又是InstallShield的發(fā)展趨勢所以我們在這里重點介紹ISWI的應用使用安裝工程向導可以快速搞定安裝軟件下面我們就通過一個例子來進行演示講解例子使用的程序是位于<InstallShieldforWindowsInstaller安裝 Files\下的Ot ogame文件這個文件是在安裝ISWI時提供的用它來生成一個安裝程序另外一個名為Ot o.ism的示范工程已經生成在向導結束時可以馬上看到該工程的大致面貌這個工程位于<InstallShieldforWindowsInstaller安裝 o\Project的第一個安裝工程了在這里我們還將向你提供各種建議以便你將安裝軟件做得更為出色啟動工程向圖3-1工程向導 e面單擊左側的ProjectWizard工程向導按鈕啟導向導中的每個步驟依次列于歡迎界面中如圖3-1所示將鼠標指向其中的任意一個都可以獲得詳細的介紹單擊Next繼續(xù)界面也提供了打開SetupBestPractice的選項此選項缺省值為關閉IgnoreBestPracticesWindowsInstallerSetupBestPractices可以幫助生成簡潔和可重復使用的代碼以便處理令人頭痛的DLL作為缺省值InstallShield不會自動掃描安裝工程因此當第一次打開集成開發(fā)環(huán)境時可以選定這項功能如果沒有選擇IgnoreBestPracticesviolations功能InstallShield會工程向導中的程序在ApplicationFiles面板上對于不滿足最佳實踐要求的任何文件會放置一個警告圖標點擊Details按鈕能查看到詳細信息InstallShield集成開發(fā)環(huán)境里的一個選項可在Tools|Options菜單項中進行設置在工程向導中使用到的最佳實踐監(jiān)視功能也能在集成開發(fā)壞境視圖下使用命名新工3-2工程向導的WizardProject工程或打開一個已有的工程進行編輯如圖3-2所示單擊CreateaNewProject并輸入新工程的名稱比如Oto單擊Next繼續(xù)CreateaNew為了命名新工程InstallShield提供了缺省名稱YourProjectName-nn為連續(xù)的數 工程名不能包含以下字符:\/:OpenaRecentOpenanExistingBrowse工程 文給出應用程序的有關信3-3ApplicationInformation在這一步要求你提供有關你的公司和應用程序的信息這些信息主要用于時生成Windows2000Add/RemovePrograms中的信息請按如圖3-3所示的示范填寫向導將根據你的公司和應用程序的名稱來設置目標文件夾的值單擊Next繼續(xù)注意這里輸入的信息將用來設置幾個重要的工程屬性和產品屬性Application這里輸入的值將在整個工程中使用包括工 編譯程序包名(.msi文件程序名不能包含以下字符程序名不能包含以下字符 產品代碼 Add/RemovePrograms 輸入應用程序的版本號由于該值符合Windows的安裝標準因此當單擊supportinformationlink 時該值將出現(xiàn)在Add/RemovePrograms添加刪除程序Company將作為產品信息進行當點擊supportinformationlink支持信息時它將出現(xiàn)在Add/RemovePrograms添加刪除程序面板中DefaultDestination產品所有的功能部件和組件都存放在INSTALLDIR中WindowsInstallerfolderpropertyWindows\ProgramFiles<ProgramFilesFolder> 當單擊supportinformationlink 時此號碼將出現(xiàn)在Add/RemovePrograms添加刪除程序面板中URLforCompanyorProduct將產品或公司的提供給用戶以便用戶了解信息在product屬性中可以給幫助(Help)更新(Updates)和信息(Information)分別設置URL時會用到該值當單擊supportinformationlink支持信息時該值將出現(xiàn)在Add/RemovePrograms添加刪除程序面板中選擇安裝語安裝程序可以使用多種語言通過此面板可以選擇安裝程序運行的語言環(huán)境如圖3-4所示缺省選項為英語若要選擇其它語言請選擇相應的復選框如果要增加對某種語言支持InstallShield可向你提供支持該語言的字符串表和好的用戶界面等資源并允許你用該語言發(fā)布安裝程序當增加一種語言時InstallShield將向你提供一張列表列出已翻譯好的用戶面板并允許用這些語言發(fā)布安裝程序一旦生成了工程就可以在工程的SetupLanguagesProject視圖在列表中修改缺省語言(Defaultlanguage)其在SetupLanguages列表中用標出如果選擇了工程向導里的buildyourfirstrelease那么面板還能決定安裝程序包使用的語言 Setup的網頁相應的支持程創(chuàng)建功能部3-5ApplicationFeatures如圖3-5所示設計安裝程序的一個重要步驟是按功能部件組織產品即讓用戶來選擇安裝哪些應用程序你將根據安裝功能部件來組織程序以便最終用戶選擇安裝要素比如在本例中我們只需要一個DefaultProgram功能部件為了刪除向導所提供的其他缺省功能部件選中這些功能部件并單擊DeleteNext繼續(xù) 被選中單擊Add按鈕生成一個新功能部件假如選中的是功能部件則增加新的子功能部件工程向導將以缺省的NewFeaturen為連續(xù)值命名新功能部件可以立即修改名稱也可以稍后再改亦可以右擊功能部件樹選中NewFeatureAdd選中一個功能部件或子部件單擊Delete將其從樹中刪 標右鍵選擇選擇一個功能部件或子部件點擊Rename按鈕重新命名按F2鍵或在功能部件上點擊鼠標右鍵選擇Rename也能重新命名功能部件樹中的各部件名稱必須是唯一的名稱可以包括字母數字點(.)和下劃線(_),SetupDesign-GlobalSetupDesign-Features視圖中可以為顯示名指定序列號stringID生成組3-6ApplicationComponents組件是一種極為有用的工具它能幫助你合理地安排類似的程序數據如文件項和件表和快捷鍵當最終用戶安裝了功能部件或子功能部件相關數據將安裝到目標系統(tǒng)本例中我們只需兩個組件Program_Executables和Game_Pieces如圖3-6所示為了DeleteGamePieces部件單擊Add并輸入部件名稱重復上一步生成Program_Executables部件選中各部件的defaultself-registrationanddestinationfolder屬性該屬性使用缺省的自和目標文件夾單擊Next繼續(xù)由于需要將組件添加到工程里因此假如本面板中未生成任何組件向導將會直接 這樣才能使用SetupDesignApplicationFiles CreateShortcuts和RegistryData面板Filesareself- DLL,DLL,或OCX文 件的DestinationFolderWindowsInstallerFolder屬性替代路徑的硬編碼在選擇新文件夾時請注意它將覆蓋ComponentDestination域中的在組件上單擊Add按鈕生成一個新組件并按字母順序添加到樹中工程向導將以缺省的NewComponentn n為連續(xù)值命名新組件既可以馬上修改其名稱也可以稍后再改在頂端的上單擊鼠標右鍵選擇NewComponent選中一個組件單擊DeleteDelete相當于單擊DeleteRenameF2鍵或右擊組件選擇Rename關聯(lián)組件和功能部3-7SetupDesign相關聯(lián)如圖3-7所示,本面板將幫助建立組件與一個或多個功能部件或子部件間的關聯(lián)注意只有ApplicationComponents面板里有多個組件時才會出現(xiàn)本面板雖然一個組件可能擁有多個功能部件但本例中只需要一個功能部件為了將組件和Default_Program功能部件相關聯(lián)選擇SetupDesign列表中的Default_Program功能部件將組件列表全部選中并單擊Add單擊 繼
要建立組件與功能部件間的關聯(lián)可以在Components列表中選擇一個組件或者按住Shift或Ctrl鍵單擊Additional單擊 按一旦組件添加到功能部件后當在那個功能部件上單擊時該組件將從Components列SetupDesign列表中的某個組件單擊Remove按鈕可撤銷它和功能部件或子部件間的關聯(lián)當某個組件和功能部件之間沒有關聯(lián)時它將出現(xiàn)在該功能部件可用的組件列把文件關聯(lián)到組3-8ApplicationFiles通過圖3-8所示面板可以把程序文件安排到組件中并詳細說明這些文件的安裝信息注意只有ApplicationComponents面板里有多個組件時才會出現(xiàn)此面板文件是與某個組件關聯(lián)的主要數據選中一個組件并單擊AddFiles按鈕將其連接到你的程序文件記住所有與組件關聯(lián)的文件必須有相同的自覆蓋和目標文件夾等屬性本示例中你將為Oto安裝文件這些文件位于<InstallShieldforWindowsInstaller安裝>\Samples\Oto\DataFiles下主執(zhí)行程序屬于Program_Executables組件為了連接到這個文件首先在組件列表中選中Program_Executables再單擊AddFiles瀏覽DataFiles子文件夾然后選擇Oto.exe并單擊Open部件列表中就出現(xiàn)了Oto.exe接著將在以Program_Executable為目標的系統(tǒng)中創(chuàng)建Oto.exe的快捷鍵你必須為這個部件設置一個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的融合模塊也可通過組件向導為這些文件生成組件首先是從列表中選擇一個組件此面板里的其他操作都和這個組件有關重復執(zhí)行本操Back按鈕退回到ApplicationComponents面板件右擊文件列表選擇從Windows資源管理器Windows 如果在歡迎面板中選擇了SetupBest 讓工程向導掃描安裝程序那么當操LinkTo值將顯示FileLinkTo值將顯示FileNotFound***,Add單擊AddFiles 瀏覽要添加到組件中的文件在Resulting 框中可以按住Shift或Ctrl鍵來選擇要添加到文件夾里的文件記住ApplicationComponents面板中的選項對組件中的每個文件都起作用右擊文件列表選擇Add相當于單擊AddFiles按鈕Delete選中一個或多個文件單擊DeleteFiles 將其從組件中刪除在文件列表中單擊鼠標右鍵并選擇Delete相當于單擊DeleteFiles按鈕PropertiesSetKeySetKeyFileClearKey如果組件里不再需要鍵文件請單擊ClearKeyFile按鈕由于組件里只能有一個鍵文此按鈕只有在打開BestPracticesnotification并選擇了帶有警告圖標的文件后才能使用單擊Details按鈕可以了解為何最佳實踐方案不包含此文件創(chuàng)建快捷圖3-9工程向 3-9所示快捷鍵與組件的鍵文件相聯(lián)系并于安裝了組件的功能部件后在目標系統(tǒng)中生成通過該面板你可以在目標系統(tǒng)的Start|Programs菜單中為Oto.exe文件創(chuàng)建快捷鍵請依次執(zhí)行以下步選中部件下拉列表中的Program_Executables注意這個部件的鍵文件提供了快捷單擊鼠標右鍵選擇New 由于未指明快捷鍵的任何值組件的鍵文件Oto.exe Next繼續(xù)首先是在列表中選擇一個組件面板中所有的快捷方式都將對該組件起作用如果要為所有的文件生成快捷方式請重復以上步驟當要向工程中添加新組件時請單擊Back按鈕退回到ApplicationComponents面板中在安裝時TargetTarget屬性可以使用standarddestinationfolders下拉列表中的<WindowsInstallerFolder>屬性替代指向目標文件夾的硬編碼選擇新TargetTargetTarget的快捷方式只有選擇了ShortcutsExplorer里的快捷方式后這些選項才可用WindowsInstallerService無法辨認單獨的.icoWindowsInstallerInstallShield將從你指定的可執(zhí)行文件中選用一個圖標當有多ShortcutsIcon域和Icon索引例如01表明文件里的第一個圖標2是第二個3是第三個等等用負整數標明源文件的標識符例如 InstallShieldShortcut瀏覽器中的這個子列出了組件里現(xiàn)有的快捷方式以及程NewShortcut瀏覽器中選擇一個文件夾單擊NewShortcut按鈕設計快捷方式工程向導將以缺省的NewComponentnn為連續(xù)值命名新快捷方式既可以立即修改名稱RenameShortcut瀏覽器目前還不支持向Windows任務欄中添加快捷方式在Shortcut瀏覽器上單擊鼠標右鍵選擇NewShortcut也可添加新的快捷方式NewShortcut瀏覽器里選擇一個文件夾單擊NewFolder生成一個新程序文件夾當安裝此組件時該文件夾將被安裝至目標系統(tǒng)中工程向導將以缺省的NewFoldernn為連續(xù)值命名新文件夾可以馬上修改名稱也可以稍后單擊Rename修改目前還不能向WindowsShortcut瀏覽器上單擊鼠標右鍵選擇NewFolder也可Shortcut瀏覽器里選擇一個文件夾或快捷方式單擊Delete可將其從安裝工程中刪除在Shortcut瀏覽器的文件夾或快捷方式上單擊鼠標右鍵選擇Delete也可將其刪除配置表信圖3-10工程向 RegistryData面該面板用于向表添加信息或向組件的數據包中添加REG文件如圖3-所示只有當ApplicationComponents常簡單不需要象別的程序那樣修改表因此在RegistryData頁面上單擊Next REG的每個組件都執(zhí)行該步驟使其都有與之關聯(lián)的REG文件當需要向工程中添加新組件時請單擊Back按鈕退回到ApplicationComponents面板REGREG個REG文件也可以稍后再在InstallShield表瀏覽器里導入追加的REG文件定義用戶界 Dialogs面 框這些此面板提供用于安裝隊列的預定義安裝框只有在向導里草擬了一個工程后才能看到這一系列框如果只是對現(xiàn)有的工程進行編輯將無法選擇框辦法是必須進入 框這些Next繼續(xù)對e ePanel選項安裝時將顯示標準歡迎面License選擇LicenseAgreement InstallShield為EULA提供了位置標志符用來在框編輯器里指定文件以及編輯帶滾動條的文本框中的FileName屬性Customer選擇CustomerInformation可顯示框來提醒用戶進行 用戶需要多用戶的系統(tǒng)比如Windows2000 SetupType/CustomSetupCompleteSetup完全安裝安裝所有必需的功能部件和CustomSetup自定義安裝用戶可以要安裝的部件只有戶選擇了CustomSetup后才顯示CustomSetup框Readyto選擇Readyto 保存工程創(chuàng)建發(fā)布媒介測試安裝程序圖3-12工程向 WizardSummary面WizardSummary讓你回顧工程向導中所做的全部設置以便做最后的修改如圖3-12所示在這里你可以第一次保存自己的新安裝程序其后綴為.ism選擇其中的一個選 并單擊 o.ism將保存在缺省設置的<我的文這里可以創(chuàng)建首個安裝包發(fā)布媒介或者保存新工程選中SaveprojectsettingsandbuildareleaseFinish有關創(chuàng)建的情況以及任何錯誤或警告都將顯示在Output窗口中此時新安裝工程在Project視圖中打開你可以做進一步修改在工作區(qū)中點擊快捷鍵以MSI包和數據文件位于<我的文檔SaveprojectsettingsandbuildaFinish認可總結保存InstallShield工程.ism文件,并編譯安裝程序包.msi文件Output窗口里的編譯統(tǒng)計則包含了編譯中所有的錯誤和警告此時新建的安裝工程將自動打開Project視圖以便做進一步修改可以單擊的RunSetup按鈕Justsaveproject選擇此選項單擊Finish認可總結并保存InstallShield工程.ism文件新建的安裝工程將打開Project視圖以便做進一步修改小利用InstallShieldforWindowsInstaller的向導我們已經成功地在十內做出了自己的第一個安裝程序包通過這個例子我們了解了工程向導的功能特征這是一個非常重要且簡單易用的工具同時我們還了解了有關安裝工程的一些概念 創(chuàng)建功能部件組件結構快捷鍵和用戶界面等等為了進一步了解工程向導如何在集成開發(fā)環(huán)境中生成視圖以及如何對工程做進一步更改可以單擊工作區(qū)視圖欄中的所有快捷鍵第4 國際版本安裝軟件制作技如何制作國際版本安裝為計算機行業(yè)的標準和習慣都是建立在英語的基礎之上特別是像中文這樣的雙字節(jié)文字在使用中經常會導致亂碼為此國內不少人對軟件和安裝程序進行漢化處理結果費時費工且效果并不理想然而InstallShield公司推出的安裝軟件解決方案為根本上解決這一難題提供了強有力的支持使得我們不僅能夠制作出中文內核中文版安裝軟件還能同樣際的需求InstallShield使得這一開發(fā)長期有效沒有風險一些圖標和位圖在一些國家受到喜愛在另一些國家可能成為用使用英語字符串通常要比其他語言簡短翻譯后的字符串大增長30-40% 為了獲得InstallShield安裝軟件制作支持需要在安裝InstallShieldforWindowsInstallerInstallShieldProfessional2000國際版本東方語言包以便支持像中文這樣的雙字節(jié)字如圖4-1圖4-2所示4-2選擇安裝InstallShieldProfessional2000InstallShield2000對語言的支持現(xiàn)在制作用于在全球發(fā)布的安裝軟件變得更加容易可以為某一地區(qū)制作單一語種的安裝軟件也可以制作滿足某些條件的多語種安裝軟件總之你可以使得安裝軟件的界面更加友好使用更加簡單安裝所需語言的國際版本語言包持在許多操作界面上有關該語言的選擇框或功能項將無法使用有關InstallShield2000對國際化語言的支持請查閱installshield相關網站國際版本安裝軟件制作的關鍵在于定制與該語言代碼相關的資源和安裝文件安裝軟件發(fā)布時安裝資源必須是與該語言一致的版本包括運行程序幫助文件用戶協(xié)議等這些資源應該在制作安裝軟件時準備好并進行與該語言相關的必要設置同時還必須考慮到目標系統(tǒng)的語言環(huán)境比如目標操作系統(tǒng)對該語言的安裝軟件及所安裝的應用程序是否支持如果不支持則要考慮使用與語言環(huán)境無關的安裝軟件或需要安裝的應用程序InstallShield2000在很多設置上支持語言無關選項LanguageIndependent 裝軟件中準備多個語言版本的應用程序并針對不同的目標系統(tǒng)的語言環(huán)境根據條件選擇—指定安裝軟件要使用的語言版本可以是一種也可以是多種語言通過國際版本語言包就可以獲得InstallShield支持的對應語言字符串表這樣使用通過向安裝工程的安裝語言屬性中添加新的語種或使用安裝向導中的安裝語言設置可省語言二字符串表為安裝程序運行時使用的語言提供了可用的字符串資源這些資源包括InstallshieldInstallshield已經翻譯好的字在制作安裝軟件的任何過程細節(jié)中須使用字符串的標識ID該標識會自動字符串表中的值所以完全不必擔心不同語言版本對安裝程序設計的影響有一個唯一的值你可以定義字符串的值和注釋每當在安裝工程中包含一種語言InstallShield就為這種語言創(chuàng)建一個的字符串表表中包括了所有現(xiàn)存的字符串標識你自己翻譯還可以修改系統(tǒng)翻譯好的值表找到所需字符串表的文本文件點擊Open按導出的字符串表是用制表符Tab鍵分割的文本文件同樣格式的文件也可以導入符串表要導入字符串表Open按鈕三為每個支持安裝的語言修改用戶框如果有必要的話當把新的語種增加到安裝工程中時InstallShield提供翻譯成該語種的標準框但是你仍然可以在框編輯器中修改這些框以便更加適合所選擇的語言要更改框的界面必須首先Workspace工User要查看這些框點擊Workspace工具條中的UserInterface按鈕展開樹中所有節(jié)點如圖4-3所示雙擊框名稱可以看到其所支持的語言要更改框的界面必須要更改框的界面必須首先Workspace工User圖4-3查看框所支持的語其變化結果將被應用到所有其他特定語言的框中但對特定語言的框的修改僅應用到該框的當前語言版本中而對缺省語言版本的改動將不再影響這個改動過的特定語言版本假如英語是缺省語言你在這個英語版本的框中增加了文本框和按鈕于是英文和中文的框都共享了這一變化比如都使用了共同的文本框長度和寬度此時在中文版中你可能發(fā)現(xiàn)文本框中文字符太大如果你在中文版的框中進行修改那么中文版的框將不再與英文版共享同一屬性其所有資源將與英文版本分離開以后當你再更改框控件中的字符串標識時需要在中文版和英文版中分別更改如果你僅僅在英文版中調整文本框的大小要同時安裝系統(tǒng)在框中使用的字符串來源于不同語言的字符串表如果你為某個控件選擇了使用本地化語言的字符串顯示的字符串值就是來源于該種語言的字符串表一旦在該控件屬性頁中編輯字符串的值你實際上編輯的是該字符串標識在其字符串表中的值其他資源如位圖多演示等都是以文件形式輸入到安裝打包中的既然它們也是與不同的語言有關所以需要為不同的語言提供不同版本的文件并記住修改相應文件名稱由于同樣的信息翻譯成不同的語言可能造成文字長度上的不同所以在框中一些言文字長度的增加而調整布局的情況不過對特定語言框的調整不會影響到其他語言框四處理依賴于不同語種的組件的則需要將這個組件標記為該特定語種SetupDesign選擇該組件適用的語種可以多選接下來就可以使用發(fā)布向導進行安裝打包向導會詢問你需要包含哪些語種如果你不選擇要包含的語種發(fā)布程序將與組件的特定語種無關即同時打包那些依賴于和不依賴于特定語種的所有組件但是如果在向導的ReleaseFiltering面板中選擇語種那么只有依賴例如你可以創(chuàng)建一個支持多語種組件的安裝工程通過發(fā)布向導過濾不需要的語種組件分別生成各個單一語種的安裝軟件另外還有一種控制特定語種的組件安裝到目標系統(tǒng)的方法是在組件的Condition屬性中進行系統(tǒng)語言代碼SystemLanguageID的判斷這樣可以保證目標系統(tǒng)的語言環(huán)境例如對于日文的組件在該組件的Condition屬性加上SystemLanguageID=1041如果目標系統(tǒng)不是日文Windows操作系統(tǒng)該組件則不會被安裝否則盲目安裝后可能導致五選擇發(fā)布安裝軟件的語言以為安裝軟件運行設定一種語言也可以設定多種語言供用戶選擇但后一種情況以上5個方面包含了安裝軟件制作的關鍵步驟具體的應用實例下一節(jié)將詳細討論但是在制作一些雙字節(jié)語言中文日文韓文希臘文等的安裝軟件時還要注意為這些語言包含代碼頁如果在中文Windows系統(tǒng)中安裝使用中文版安裝軟件當然不會有問題對于WindowsNT4.0單擊 國際版本安裝軟件制作InstallshieldOto的現(xiàn)成例子我們將為該應用裝程序制作一個支持簡體中文日文和英文的國際版本安裝程序通過該實例下面將循序漸進分步驟說明第一步打開 o.ism是Installshield自帶的一個工程模板首先需要打開這個模板它存放在<InstallShieldforWindowsInstaller安 o\ProgramFiles中可以用第二步4-4要想創(chuàng)建一個國際版本的安裝程序首先要選擇合適的語種要為你的安裝程序添加語種請進入ProjectProjectPropertiesSetupLanguagesproperty將顯示可選擇的語言類型系統(tǒng)支持的語種后面會出現(xiàn)深灰色的圖標若是淺灰色的圖標則表明該語言系統(tǒng)不支持如果你要的語種未被列出請查詢InstallShield/intliswi/lang/ 為安裝程序添加簡體中文ChinesePRC language左側的復選框與此同時如圖4-4所示在右側的Project視圖中可以看到Chinese 和 United請注意,制作國際版本的安裝軟件時InstallShieldforWindowsInstaller已存在的安裝工程中的字符串表因此你需要自己將某些語種導入列表步驟如下右擊Project視圖StringTables下的ChinesePRC 從選項列表中選擇ImportString進入<InstallShieldforWindowsInstaller安 件將出現(xiàn)一個框詢問是否要覆蓋當前字符串表 單擊Yes第三步自動生成字符串表的條目在這些區(qū)域中輸入文字時將自動生成字符串表的對應條目SetupDesign-GlobalDefaultProgram的功能部件雙擊DisplayName屬性輸入程序文件如果在屬性框的其他地方點擊你將發(fā)現(xiàn)已輸入的文字前加上了{NEW_STRING1}StringTable頁可查看缺省語種的完整字符串表如圖4-5所示單擊屏幕底單擊屏幕底部的String 已輸入的文字前加上了{NEW4-5Program_Executables組件含有Oto.exe文件的快捷鍵選擇該組件子節(jié)點下的Shortcuts圖標在Shortcuts視圖中展開程序菜單的子并單擊Oto快捷鍵快捷當前的DisplayName屬性為空如果不輸入一個顯示名快捷鍵的名稱將與顯示名一致因此既然快捷鍵名為Ot o那么顯示名也為Ot 表因此無法定位但是如果為快捷鍵輸入一個顯示名所有字符串表中都將出現(xiàn)一個新項目雙擊DisplayName屬性并輸入 如果在屬性框的其他地方點擊你將發(fā)現(xiàn)輸入的文字前加上了{NEW_STRING2}前綴如圖4-6所示第四步顯得沒有必要相反你可以一次創(chuàng)建多次使用ShortcutDescriptionShortcutDescriptionStringTable 最后右擊新字符串表條目從彈出菜單中選擇Select ShortcutDescription的值輸入如圖4-74-7第五步序添加三個新組件每個組件包含一個帶有所有支持語言版本的Readme文件分別對應于英語中文和日文執(zhí)行以下步驟添加組件SetupDesign-Global輸入 作為組件重復以上步驟兩次將這些組件分別命名為 和準備好已經翻譯過的Readme文件假設這些文件位于<InstallShieldforWindowsInstaller安裝 o\DataFiles\Readme.執(zhí)行以下步驟向English_Readme選擇 組 并單擊Filesshortcut右擊文件列表并選擇導入 4-8所示對Japanese和Chinese 和第六步 單 在Add 單 在Adda 件條件4-9點擊Chinese_Readme組件并從右邊的屬性頁中選擇Condition屬性單擊屬性頁下方的名為ConditionBuilder的 開始創(chuàng)建組件條件如圖4-9所示在AddapropertySystemLanguageID按下Add在Addanoperator區(qū)域中選擇等號 按下Add將此運算符也添加到組件在編輯框中你將看到SystemLanguageID=它表明你已經做好了選擇接20522052是簡體中文的標識符由于這個組件只有在等式成立時才被安裝即目標機器將把簡體中文作為缺省語言因此如果某臺機器使用的不是簡體中文該組件將不會安裝按以上步驟為 組件添加條件不同的是用1041來代替事實上人們無法讓安裝軟件和應用程序支持世界上所有的語種也許你希望能夠選擇一種語言作為缺省語種在本例中缺省語種是英語因此使用English_Readme組件的單擊English_Readme組件選擇右邊屬性框中的Condition屬性單擊屬性單下方的ConditionBuilder 開始創(chuàng)建新的組件條件最后的條件如下所示按此邏輯如果目標機器使用的語言不是日語或簡體中文那么將會自動安裝 第七步本地化字符串4-10本地化字符串簡體中文在建立安裝程序之前必須定義作為功能部件名稱快捷鍵名稱和對快捷鍵的描述而輸入的英語字符串幸運的是Installshield將為你做這些工作你要做的只是在字符串表中輸進入Project視圖在樹型結構中選擇StringTables下方的ChineseRPC如圖4-10識符為相關聯(lián)的字符串表輸入以下文字 接著單擊日語的字符串
更輕而易舉Installshield已經完成了大量的缺省字符串翻譯工作第八步編譯安裝程現(xiàn)在安裝程序已經完際化了隨時可以試運行然而在試運行之前必須對它編譯單擊中的發(fā)布向導按鈕進行編譯兩個界面中確定編譯和發(fā)布名稱除了SetupLanguages面板之外保持其他界面的缺省設置此界面允許你選擇安裝程序語言只有Projectproperties中指定的語言才會出現(xiàn)在候選列表中你可以從英語日語和簡體中文中選擇如圖4-11所示選中每種語言后面的復選框即可確認你已選中了DisplaytheLanguageSelectiondialog選項此框允許最終用戶選擇他們希望在運行安裝程序中使用的語言單擊Next繼續(xù)向導Build編譯你的.msi文件第九步運行安裝程序圖4- 選擇安裝程序的語言單擊工具條中的運行按鈕,運行你的安裝程序出現(xiàn)的第一個框是選擇安裝程序的語言框如圖4-12所示此框將以你設定的缺省語言顯示選擇簡體中文并單擊確定 此后每個框都將以簡體中文顯示請注意,一旦以某種語言運行了一個安裝程序WindowsInstaller將自動保存此信息并總是以此語言運行安裝程序而不管你在LanguageSelection框中作過什么設置決此問題只需進入Dialogeditor并重新調整大小即可如果進入CustomSetup界面在簡體中文中它被稱為自定義安裝,你將發(fā)現(xiàn)功能部件名稱現(xiàn)在被改為程序文件如圖4-13所示本地化的字符串表已包含在安裝程序中了圖4-13本地化的自定義安 界第十步測試快捷鍵和Readme打開開始菜單并選擇程序你將發(fā)現(xiàn)Oto的快捷鍵被顯示為中文奧賽羅如圖4-14所示在運行Windows2000的機器上你能夠看到用簡體中文顯示的對快最后進入Oto的安裝它應該位于<ProgramFilesFolder>\ShakespeareInc\Oto你安裝的readme文件被稱為Chinese_readme.txt圖4- 開始菜單程序中顯示的快捷鍵為中 如果應用程序擁有不同的語言版本你將需要創(chuàng)建指定語種的組件以便確定系統(tǒng)能夠安裝正確的版本 雖然系統(tǒng)已經翻譯了缺省的字符串表你仍需添加一些自定義的字符串這些字符串必須在你使用之前翻譯好 記選擇發(fā)布所用的語言另外還要包含進LanguageSelection框和Setup.exe所有這些選項都可通過Releasewizard設置當然這里只是一個整體介紹InstallShield提供了的好方法來制作國際版本安裝程序如使用基于語言的發(fā)布標記和數據篩選想要進一步了解可以InstallShield第5 數據庫應用程序安裝軟件制作技利用前面所學的InstallShield你已經能夠開發(fā)出功能足夠強大的安裝程序不過如果ODBC敗筆更何況大多數用戶對數據庫設置一竅不通即使是很有經驗的計算機人員在設置ODBC時如OracleSQLServer等常常也一籌莫展所以制作能自動配置數據庫連接的安裝軟件與其說是表現(xiàn)你非凡的開發(fā)技巧倒不如說是為了解決實際安裝中的麻煩不然你會被用戶的求助搞得焦頭爛額本章先介紹數據庫應用程序及其安裝要點然后講解如何使用ISPro2K制作數據庫應用程序安裝軟件的實例數據庫應用程序及其安裝數據庫應用程序的一個數據庫應用程序在邏輯上通常由兩部分組成一是數據庫鏈路二是用戶界面通常我們把實現(xiàn)數據鏈路的組件與實現(xiàn)用戶界面的組件分開凡是數據組件最好放在數據模塊上這樣能夠保證應用程序具有一致的用戶界面如果把設計好的數據模塊和窗體加到對象庫中在創(chuàng)建一個新的數據庫應用程序時就不必什么都從頭開始這樣不但能夠提高編程效率而且能夠保證程序具有一致的風格數據庫應用程序的體系結構取決于是使用本地數據庫還是數據庫取決于同時在不同的數據庫應用程序的結構體系中數據庫的連接最常用的方式是通過ODBC數據源來實現(xiàn)的ODBC是開發(fā)與數據庫有關的應用程序經常要用到的外部數據連接之一利用ODBC能夠編寫客戶應用程序使用來自許多不同數據源的宿主數據因此能夠建立不依賴于數據的應用程序ODBC廣泛地應用于多種不同的應用程序中
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2024年文化產業(yè)發(fā)展委托擔保服務合同樣本3篇
- 2024年版勞動協(xié)議解除證明書模板一
- 2024年國內快遞服務新合同3篇
- 2024年國際物流運輸及清關協(xié)議3篇
- 山西職業(yè)技術學院《現(xiàn)代電子總線技術》2023-2024學年第一學期期末試卷
- 2024年標準場地承包經營合同模板版B版
- 2024衛(wèi)浴建材綠色供應鏈購銷合作協(xié)議3篇
- 山西藝術職業(yè)學院《中學生物學科課程標準與教材分析》2023-2024學年第一學期期末試卷
- 山西藝術職業(yè)學院《軟件工程概論》2023-2024學年第一學期期末試卷
- 2024年版專屬融資租賃回租協(xié)議格式版B版
- 2024《整治形式主義為基層減負若干規(guī)定》全文課件
- 常用統(tǒng)計軟件應用智慧樹知到期末考試答案章節(jié)答案2024年揚州大學
- 中國法律史-第三次平時作業(yè)-國開-參考資料
- 統(tǒng)計軟件SPSS教案(全)
- 蘇科版一年級心理健康教育第17節(jié)《生命更美好》課件(定稿)
- 多層框架結構PKPM設計步驟及平法施工圖繪制(湘潭大學)
- 小學體質健康測試教案合集
- 商務英語培訓(入門篇)課件
- 礦業(yè)公司管理制度(全冊參考范本)
- 電子營業(yè)執(zhí)照下載確認書
- CA6140撥叉831002課程設計工序卡
評論
0/150
提交評論