InstallShield 是 Windows 平台上最主流的安裝程式製作工具。本文以 InstallShield 8.0 為例,循序漸進說明從建立專案、編譯測試、設定捷徑/登錄/COM 元件、條件安裝、腳本客製化到介面換膚的完整流程,適合初次接觸安裝部署的開發者快速上手。
MySetup,產生 MySetup.ism 專案檔 (含所有設定,可攜帶至他機)。[ProgramFilesFolder] 變數自動對應目標系統 Program Files 目錄)。ProgramFiles、HelpFiles 兩個 Feature,方便使用者自訂安裝內容。setup.exe 及 .msi / .cab 檔案。雙擊 setup.exe 驗證安裝流程、UI、檔案部署、捷徑建立、登錄寫入等是否符合預期。
Imserver.exe)。HKEY_LOCAL_MACHINE\SOFTWARE,新增廠商/產品金鑰。[INSTALLDIR] 等 InstallShield 展開變數。.reg 檔案批次寫入。針對 ActiveX / COM DLL (如 G729AEC.dll) 需在目標機註冊:
DllRegisterServer。WinNT_Files,加入檔案並設為 Key File。使用 VersionNT、MsiNTProductType 等內建屬性撰寫條件運算式,參考線上說明。
InstallScript 採事件驅動模型,所有函數依安裝階段自動觸發。
OnBegin:安裝最早觸發,適合初始化、檢查前置條件。OnFirstUIBefore/After:首次安裝 UI 階段 (複製檔案前/後)。OnMaintUIBefore/After:維護模式 (修復/移除) UI 階段。function OnBegin()
begin
MessageBox("Welcome to the Tutorial installation!", INFORMATION);
end;
編輯腳本後需重新 Build 才生效。
InstallScript MSI 專案的對話框顯示邏輯集中於四個函數:
OnFirstUIBefore:首次安裝、複製檔案前的所有對話框 (歡迎、授權、客戶資訊、目的地路徑…)OnFirstUIAfter:首次安裝、複製檔案後的對話框 (完成、重啟提示…)OnMaintUIBefore、OnMaintUIAfter:維護模式對應階段。Dlg_Start:
Dlg_SdWelcome:
szTitle = ""; szMsg = "";
nResult = SdWelcome(szTitle, szMsg);
if (nResult = BACK) goto Dlg_Start;
Dlg_SdCustomerInformation:
szMsg = ""; szTitle = "";
nResult = SdCustomerInformation(szTitle, szName, szCompany, nUser);
if (nResult = BACK) goto Dlg_SdWelcome;
// ... 後續對話框
可直接修改標題/訊息字串、增減對話框呼叫、插入自訂邏輯。
InstallShield 8.0 功能強大且成熟,掌握上述核心流程即可製作專業級安裝程式。進階主題如:多語系建置、修補程式、數位簽章、自訂動作 (Custom Action) 呼叫 DLL/EXE、升級策略 (Major/Minor Upgrade) 等,建議深入閱讀官方文件與實作演練。
作者:李強 (山大聯潤) | aooang@hotmail.com