InstallShield6.3安裝檔案製作要點 (轉)

worldblog發表於2007-08-17
InstallShield6.3安裝檔案製作要點 (轉)[@more@]

InstallShield6.3製作要點

做安裝的工具挺多,我還是較喜歡用InstallShield6.3,但InstallShield6功能本身非常強大,你也許可以找到關於安裝程式製作的大量資料,但你費上好一陣子來研究後卻發現還是收效甚微,本文是幫你解決這一問題的。當然你要寫出有自己個性的安裝檔案當然還需要另花些精力,但這裡的介紹應該有很多實惠的幫助。

首先你要明確一般的安裝程式要做的事主要是3件:

l  將可的檔案(資料夾)及其所需的DLL等可執行所需檔案拷到指定目錄;

l  建立快捷方式(桌面、開始選單)

l  寫登錄檔等資訊

1.  安裝InstallShield6:namespace prefix = o ns = "urn:schemas--com::office" />

注意要做中文版的安裝程式的話需要單獨安裝相應的東方語言包。

2.  按嚮導建立安裝工程

建議可以不填的內容且搞不清含義的先不填,要快就得這樣,後面還還可以修改的。剩下的事全部基於工程的各項設定進行。工程設定包括分為7類:

1)  安裝專案,預設的有MainApp,Tutorial,Examples,是將要安裝的內容按邏輯分組的,讓使用者在安裝時可選擇必要的元件;

2)  檔案組,預設的有AppExcutables,App Self Reg DLLs, Example Files, Tutorial Files,主要是將要打包的檔案分組的;

3)  資源,包括串的定義、登錄檔設定、桌面及程式選單快捷方式等;

4)  指令碼,這是安裝程式的;

5)  安裝檔案,起始畫面、License等;

6)  安裝型別,預設有Compact,Typical, Custom三種;

7)  Media,生成打包檔案,如果要做成自動解壓型別:在工程工作區中選Meadia項,右鍵選特定Meadia屬性,選Packaging項的第一個核取方塊。其它看著辦。

3.  安裝專案元件設定

ectratio="t">

4.  檔案組(File Groups)設定

共同屬性:

l  Share該檔案組檔案是否共享,即是否被其它程式使用。預設為NO。

l  Uninstall該項是否要被解除安裝,預設為YES。

新增要安裝的檔案,有下列屬性需要設定。

可執行檔案(App Excutables):源路徑(用Insert File選單操作);目標路徑(Destination):更改屬性設定,注意利用系統變數,如TARGETDIR

新增圖示(Icon):

l  Icon File:含圖示的檔案;

l  Icon Index:在圖示檔案中的,如果圖示檔案只含一幅,將其設為0;

l  Install Conditions(File Groups):安裝條件,在選擇安裝某檔案組時安裝該項;

5.  資源

l  資源中要設定的一些屬性如上圖所示

l  Start Menu->Programs->Startup(啟動)(預設啟動項)

l  要注意建立資料夾和快捷方式是不同的

以上就是要做一個安裝檔案的主要內容了,其它細節就不贅述了,下面是我在使用時總結的幾個非常實用的技巧,我將它們歸為FAQ,如果大家碰到什麼問題不防提出來,一起來充實這個FAQ

FAQ

6.  反安裝程式的製作

InstallShield6.3安裝程式會預設記錄解除安裝資訊,再次執行安裝程式(setup.exe)會自動執行反安裝功能。

l  建立一個解除安裝快捷方式指向:setup.exe就OK了。

7.  禁止反安裝

InstallShield6.3做出的安裝包自動帶有反安裝功能,有些人想去掉反安裝功能,這樣別人就不能透過控制皮膚中的“新增/刪除程式”來刪除安裝的檔案。當然我不主張這樣做,但從技術上我可以告訴如何實現。

當執行完安裝以後,在指令碼最後加上以下內容即可

subKey = "SOFTWAREMicrosoftCurrentVersionUninstall" + PRODUCT_GUID;     

  RegSetDefault(HKEY_LOCAL_MACHINE); 

  if (RegDBKeyExist(subKey) =1) then

  RegDBDeleteKey (subKey);  //刪除登錄檔資訊

  endif; 

  if(!ExistsDir(DISK1TARGET))then

  DeleteDir(DISK1TARGET,ALLCONTENTS);

//刪除可以執行反安裝功能的setup.exe所在的資料夾下所有檔案

  endif;

8.  Installshield6.3製作出的安裝程式,安裝到最後複製檔案那一步結束後出現:"DLL失敗:USER32.MessageBoxA..."?

這是因為註冊DLL檔案失敗導致。所以要安裝的DLL檔案如果不需自注冊請將其Self-Registered屬性選為NO。


來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/10752043/viewspace-963662/,如需轉載,請註明出處,否則將追究法律責任。

相關文章