分享一個自用的 Inno Setup 軟件打包腳本


此腳本支持打包mysql、安裝mysql服務、安裝windows服務、操作ini文件、操作注冊表、高效壓縮文件等功能,基本能滿足常用的軟件打包需求。

;定義各種常量
#define MyAppName "軟件名稱"
#define MyAppDirName "軟件目錄名稱"

;下面的版本號,公司名稱,網址在 控制面板->卸載應用程序 的地方可看到
#define MyAppVersion "版本號"
#define MyAppPublisher "公司名稱"
#define MyAppURL "軟件網址鏈接"

#define MyAppExeName "主執行文件.exe"

[Setup]
; 注: AppId的值為單獨標識該應用程序。
; 不要為其他安裝程序使用相同的AppId值。
; (生成新的GUID,點擊 工具|在IDE中生成GUID。)
AppId={{1394783A-5D3C-48CD-8470-E2DFBB844E42}
AppName={#MyAppName}
AppVersion={#MyAppVersion}
AppVerName={#MyAppName}
AppPublisher={#MyAppPublisher}
AppPublisherURL={#MyAppURL}
AppSupportURL={#MyAppURL}
AppUpdatesURL={#MyAppURL}
DefaultDirName={pf}\{#MyAppDirName}
DefaultGroupName={#MyAppName}

;安裝包文件輸出目錄
OutputDir=D:\Output\

;安裝包文件名
OutputBaseFilename=setup

;壓縮文件
Compression=lzma
SolidCompression=yes

;以管理員權限運行
PrivilegesRequired=admin


UninstallDisplayIcon={app}/{#MyAppExeName}
VersionInfoVersion=1.0.0.0

;安裝包語言
[Languages]
Name: "chinesesimp"; MessagesFile: "compiler:Default.isl"

[Files]
Source: "F:\Output\源程序文件目錄\*"; DestDir: "{app}"; Flags: ignoreversion recursesubdirs createallsubdirs
;源程序文件目錄

[Icons]
Name: "{group}\{#MyAppName}"; Filename: "{app}\{#MyAppExeName}"
Name: "{userdesktop}\{#MyAppName}"; Filename: "{app}\{#MyAppExeName}"; WorkingDir: "{app}";

;安裝完成后要執行的操作
[Run]
Filename: "{app}\mysql\bin\mysqld"; Parameters: " --install mysql --defaults-file=""{app}\mysql\my.ini"""; WorkingDir: "{app}\mysql\bin"; Flags: runhidden;
;安裝mysql服務
Filename: "{sys}\net"; Parameters: "start mysql"; WorkingDir: "{sys}"; Flags: runhidden;
;啟動mysql服務
Filename: "{dotnet40}\installutil.exe"; Parameters: " MyService.exe"; WorkingDir: "{app}"; Flags: runhidden;
;安裝windows服務
Filename: "{sys}\net"; Parameters: "start MyService"; WorkingDir: "{sys}"; Flags: runhidden;
;啟動windows服務

Filename: "{app}\{#MyAppExeName}"; Description: "{cm:LaunchProgram,{#StringChange(MyAppName, '&', '&&')}}"; Flags: nowait postinstall skipifsilent runasoriginaluser
;是否啟動軟件

;卸載后執行的操作(停止、刪除各種服務)
[UninstallRun]  
Filename: "{sys}\net"; Parameters: "stop mysql"; WorkingDir: "{sys}"; Flags: runhidden;
Filename: "{sys}\net"; Parameters: "stop MyService"; WorkingDir: "{sys}"; Flags: runhidden;  
Filename: "{app}\mysql\bin\mysqld"; Parameters: " --remove mysql"; WorkingDir: "{app}\mysql\bin"; Flags: runhidden;
Filename: "{dotnet40}\installutil.exe"; Parameters: "/u MyService.exe"; WorkingDir: "{app}"; Flags: runhidden;

;操作my.ini文件,修改basedir和datadir目錄
[INI]
Filename: "{app}\mysql\my.ini"; Section: "mysqld"; Key: "basedir"; String: "{app}/mysql"
Filename: "{app}\mysql\my.ini"; Section: "mysqld"; Key: "datadir"; String: "{app}/mysql/data"

;卸載后刪除目錄所有文件,刪除空目錄
[UninstallDelete]
Type: filesandordirs; Name: "{app}\*"
Type: dirifempty; Name: "{app}"

;操作注冊表
[Registry]
Root: HKLM; Subkey: "Software\SoftName"; Flags: uninsdeletekey;

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM