Inno Setup 打包工具使用手册
Inno Setup 是一款轻量、功能强大的 Windows 安装包制作工具,支持脚本自定义、数字签名、权限控制、多语言、任务选项等功能,广泛应用于个人和企业软件打包场景。
一、Inno Setup 简介
官网地址:https://jrsoftware.org/isinfo.php
特点:
-
支持多语言安装向导
-
支持数字签名(SignTool)
-
可自定义安装行为(通过 Pascal 脚本)
-
支持条件任务、注册表、服务等设置
-
支持 x86/x64,兼容 Win7 到 Win11
二、安装与准备
1. 安装工具
-
下载 Inno Setup 官方安装包并安装
-
建议使用 Unicode 版本(支持更多语言)
-
安装完成后可使用 GUI(
Compil32.exe
)或命令行编译.iss
脚本文件
2. 编译脚本(GUI / 命令行)
-
打开
.iss
脚本 → 点击工具栏「编译」 -
或在命令行使用:
Compil32.exe /cc your_script.iss
三、基本 .iss
脚本结构
[Setup]
AppName=MyApp
AppVersion=1.0.0
DefaultDirName={autopf}\MyApp
OutputDir=Output
OutputBaseFilename=MyAppSetup
Compression=lzma[Files]
Source: "bin\MyApp.exe"; DestDir: "{app}"; Flags: ignoreversion[Icons]
Name: "{group}\MyApp"; Filename: "{app}\MyApp.exe"[Run]
Filename: "{app}\MyApp.exe"; Description: "Launch MyApp"; Flags: nowait postinstall
四、常用段落详解(含参数说明)
1. [Setup]
安装器设置
参数 | 说明 |
---|---|
AppName | 安装程序显示的应用名称 |
AppVersion | 版本号,会显示在安装信息页 |
DefaultDirName | 默认安装目录,支持变量如 {autopf} |
OutputDir | 生成的安装包保存目录 |
OutputBaseFilename | 生成安装包的基础文件名(不含 .exe ) |
Compression | 压缩算法(如 lzma , zip ) |
SolidCompression | 启用固实压缩,压缩率更高 |
PrivilegesRequired | 要求权限(admin / lowest / poweruser) |
WizardStyle | 向导样式(classic / modern ) |
AppPublisher | 发布商名,用于控制面板和卸载项中显示 |
2. [Files]
文件拷贝与签名
参数 | 含义 |
---|---|
Source | 源文件路径 |
DestDir | 安装目标目录(如 {app} ) |
Flags | 控制行为,如:ignoreversion :不比较版本始终覆盖signonce :签名(如未签)sign :强制签名recursesubdirs :递归子目录createallsubdirs :自动创建子目录 |
3. [Icons]
快捷方式
字段 | 含义 |
---|---|
Name | 快捷方式路径,如 {group} 表示开始菜单组 |
Filename | 快捷方式指向的程序路径 |
Tasks | 可选安装任务条件 |
4. [Run]
安装后自动运行程序
参数 | 含义 |
---|---|
Filename | 要运行的程序路径 |
Description | 显示在复选框中 |
Flags | postinstall 安装后运行;nowait 不等待进程退出;shellexec 用外壳方式运行;runascurrentuser 当前用户身份运行 |
5. [Registry]
写入注册表项(如开机自启)
[Registry]
Root: HKCU; Subkey: "SOFTWARE\Microsoft\Windows\CurrentVersion\Run";
ValueName: "MyApp"; ValueData: """{app}\MyApp.exe"""; Flags: uninsdeletevalue
6. [Languages]
多语言支持
[Languages]
Name: "english"; MessagesFile: "compiler:Default.isl"
Name: "chinesesimplified"; MessagesFile: "compiler:Languages\ChineseSimplified.isl"
7. [Tasks]
可选任务(如创建桌面图标)
[Tasks]
Name: "desktopicon"; Description: "{cm:CreateDesktopIcon}"; GroupDescription: "{cm:AdditionalIcons}";
8. [Code]
高级逻辑(Pascal 脚本)
用于控制安装逻辑,如是否保留旧配置、静默模式判断等:
function InitializeSetup(): Boolean;
begin
Result := MsgBox('是否继续安装?', mbConfirmation, MB_YESNO) = IDYES;
end;
五、签名支持(SignTool)
在 [Files]
中添加签名:
Source: "MyApp.exe"; DestDir: "{app}"; Flags: ignoreversion signonce;
你也可以通过 signtool.exe
在打包后对整个安装包签名:
signtool sign /fd sha256 /a /tr http://timestamp.sectigo.com /td sha256 MyAppSetup.exe
六、构建与分发流程推荐
-
准备
.exe
、.dll
、资源文件 -
编写
.iss
脚本,定义文件、路径、快捷方式 -
使用
Compil32.exe /cc
编译为安装包 -
使用
signtool.exe
对安装包执行签名 -
上传至官网下载页或打包二维码
七、常用路径变量速查表
变量 | 含义 |
---|---|
{app} | 安装目标目录(用户可选) |
{autopf} | 系统 Program Files 目录 |
{group} | 开始菜单程序组目录 |
{userdesktop} | 当前用户桌面 |
{tmp} | 安装临时目录 |
{localappdata} | 当前用户 LocalAppData 路径 |
总结
Inno Setup 是 Windows 桌面应用发布中非常实用的工具,结合脚本定制与签名机制,可构建出专业、可信、安全的安装体验。
无论是个人开发者还是企业级发布,都值得掌握。