做安裝程序的工具挺多,我還是較喜歡用InstallShield6.3,但InstallShield6功能本身非常強大,你也許可以找到關於安裝程序製作的大量資料,但你費上好一陣子來研究後卻發現還是收效甚微,本文是幫你快速解決這一問題的。當然你要寫出有自己個性的安裝文件當然還需要另花些精力,但這裏的介紹應該有很多實惠的幫助。
首先你要明確一般的安裝程序要做的事主要是3件:
l 將可執行的文件(文件夾)及其所需的DLL等可執行所需文件拷到用戶指定目錄;
l 創建快捷方式(桌面、開始菜單)
l 寫註冊表等系統信息
1. 安裝InstallShield6
注意要做中文版的安裝程序的話需要單獨安裝相應的東方語言包。
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. 安裝項目組件設置
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 Start Menu->Programs->Startup(啓動)(默認啓動項)
l 要注意創建文件夾和快捷方式是不同的
以上就是要做一個安裝文件的主要內容了,其它細節就不贅述了,下面是我在使用時總結的幾個非常實用的技巧,我將它們歸爲FAQ,如果大家碰到什麼問題不防提出來,一起來充實這個FAQ。
FAQ
6. 反安裝程序的製作
InstallShield6.3安裝程序會默認記錄卸載信息,再次運行安裝程序(setup.exe)會自動執行反安裝功能。
l 創建一個卸載快捷方式指向:<DISK1TARGET>/setup.exe就OK了。
7. 禁止反安裝
InstallShield6.3做出的安裝包自動帶有反安裝功能,有些人想去掉反安裝功能,這樣別人就不能通過控制面板中的“添加/刪除程序”來刪除安裝的文件。當然我不主張這樣做,但從技術上我可以告訴如何實現。
當執行完安裝以後,在腳本最後加上以下內容即可
subKey = "//SOFTWARE//Microsoft//Windows//CurrentVersion//Uninstall//" + PRODUCT_GUID;
RegDBSetDefaultRoot(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。