InnoSetup介紹
InnoSetup 是一個免費開源的 Windows 安裝程式制作軟體。第一次發表是在 1997 年,Inno Setup 今天在功能設定和穩定性上的競争力可能已經超過一些商業的安裝程式制作軟體。

安裝程式用編譯腳本的方式建立,腳本其實就是一個類似.INI 檔案格式的檔案,腳本用一個“.iss”(表示 Inno Setup Script腳本) 的擴充名。腳本控制着安裝程式的所有方面。由它指定哪些檔案将被安裝到什麼地方,在哪裡建立快捷方式,且被命名為什麼。
腳本檔案一般可以用安裝程式編譯器程式内置的編輯器進行編輯。在你編寫完腳本後,下一個最終步驟就是選擇安裝程式編譯器中的“編譯”。建立完成後,就可以運作根據你腳本編譯的安裝程式了。按預設,這個安裝程式建立在包含腳本檔案目錄下的名為“輸出”目錄中。
Inno Setup 安裝目錄下的Examples 子目錄中有好多模闆腳本檔案可供參考。
innoSetup功能
1.支援現在所有正在使用的 Windows 版本:
2.支援建立單個 EXE 格式的安裝程式,使你的程式可以很友善地在網絡上發表。同時也支援磁盤延伸。
3.定制安裝類型,例如:完整安裝,最小安裝,自定義安裝。
4.完整的解除安裝功能。
5.檔案安裝:包括完全的“壓縮”支援,bzip2 和 7-Zip LZMA 檔案壓縮。安裝程式可以比較檔案版本資訊,替換正在使用的檔案,使用共享檔案計數,注冊 DLL/OCX 和類型庫,以及安裝字型。
6.可以在任意地方建立快捷方式,包括開始菜單和桌面。
7.建立系統資料庫 和 .INI 條目。
8.在安裝之前、之中或之後可運作其他程式。
9.支援多語言安裝。
10.支援密碼和加密安裝。
11.支援數字簽名 、安裝和解除安裝。
12.背景安裝和背景解除安裝。
13.完整的 Pascal 腳本 引擎選項于運作期進階自定義安裝和解除安裝。
14.全部源代碼公開 (Delphi)。
InneSetup腳本
典型inneSetup腳本
1 [Languages]
2 Name: "chinesesimp"; MessagesFile: "compiler:Default.isl"
3
4 [Setup]
5 AppName=光軟集團多媒體管理系統
6 AppVersion=V1.0
7 WizardStyle=modern
8 DefaultDirName=D:\FounderCB
9 DefaultGroupName=光軟集團
10 UninstallDisplayIcon={app}\uninstall.exe
11 Compression=lzma2
12 SolidCompression=yes
13 OutputDir=install
14 SetupIconFile=D:\多媒體安裝盤\iconlogo.ico
15 OutputBaseFilename=founderCB_setup
16 WizardImageFile=D:\多媒體安裝盤\安裝.bmp
17 PrivilegesRequired=admin
18 ;WizardSmallImageFile=D:\多媒體安裝盤\1.bmp
19
20 [Files]
21 Source: "D:\多媒體安裝盤\mysql-8.0.21\*"; DestDir: "{app}\mysql-8.0.21";Flags:igNoreversion recursesubdirs createallsubdirs
22 Source: "D:\多媒體安裝盤\openjdk-11.0.2\*"; DestDir: "{app}\openjdk-11.0.2";Flags:igNoreversion recursesubdirs createallsubdirs
23 Source: "D:\多媒體安裝盤\tomcat-9.0.39\*"; DestDir: "{app}\tomcat-9.0.39";Flags:igNoreversion recursesubdirs createallsubdirs
24 Source: "D:\多媒體安裝盤\chrome-84\*"; DestDir: "{app}\chrome-84";Flags:igNoreversion recursesubdirs createallsubdirs
25 Source: "D:\多媒體安裝盤\initService.bat"; DestDir: "{app}";Flags:igNoreversion recursesubdirs createallsubdirs
26 Source: "D:\多媒體安裝盤\startup.bat"; DestDir: "{app}";Flags:igNoreversion recursesubdirs createallsubdirs
27 Source: "D:\多媒體安裝盤\uninstallService.bat"; DestDir: "{app}";Flags:igNoreversion recursesubdirs createallsubdirs
28 Source: "D:\多媒體安裝盤\iconlogo.ico"; DestDir: "{app}";Flags:igNoreversion recursesubdirs createallsubdirs
29 ;Source: "D:\多媒體安裝盤\runtime.exe"; DestDir: "{app}";Flags:igNoreversion recursesubdirs createallsubdirs
30
31 [Icons]
32 Name: "{group}\光軟集團"; Filename: "{app}\startup.bat";IconFilename:"{app}\iconlogo.ico"
33 Name: "{userdesktop}\光軟集團"; Filename: "{app}\startup.bat";IconFilename:"{app}\iconlogo.ico"
34
35 [INI]
36 Filename:"{app}\mysql-8.0.21\my.ini";Section:"mysqld";Key:"basedir"; String:"{app}\mysql-8.0.21"
37 Filename:"{app}\mysql-8.0.21\my.ini";Section:"mysqld";Key:"datadir"; String:"{app}\mysql-8.0.21\data"
38
39 [Run]
40 ;Filename: "{app}\runtime.exe"; Description: "{cm:LaunchProgram,為作業系統安裝運作庫}"; Flags: postinstall skipifsilent
41 Filename: "{app}\initService.bat"; Description: "{cm:LaunchProgram,初始化服務腳本}"; Flags: postinstall skipifsilent
42 Filename: "{app}\startup.bat"; Description: "{cm:LaunchProgram,光軟集團多媒體管理系統}"; Flags: postinstall skipifsilent
43 [UninstallRun]
44 Filename: "{app}\uninstallService.bat"; Flags: skipifdoesntexist
45 [code]
46 //function InitializeSetup (): Boolean;
47 //begin
48 //MsgBox('請確定以管理者權限安裝!', mbInformation, MB_OK);
49 //Result := true;
50 //end;
設定管理者權限安裝
實際制作軟體安裝包時,需要在安裝完成後執行初始化腳本,而win10中設定環境變量等操作都需要管理者權限,是以,需要設定為管理者權限啟動的安裝包。
但是很尴尬,網上使用Resource Hacker修改為管理者權限的隻是改了個圖示,并不會使編譯好的安裝程式要求管理者權限安裝。