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修改為管理員權限的只是改了個圖標,並不會使編譯好的安裝程序要求管理員權限安裝。