Inno Setup 打包工具使用手册
官网地址特点支持多语言安装向导支持数字签名(SignTool)可自定义安装行为(通过 Pascal 脚本)支持条件任务、注册表、服务等设置支持 x86/x64,兼容 Win7 到 Win11Inno Setup 是 Windows 桌面应用发布中非常实用的工具,结合脚本定制与签名机制,可构建出专业、可信、安全的安装体验。无论是个人开发者还是企业级发布,都值得掌握。
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 桌面应用发布中非常实用的工具,结合脚本定制与签名机制,可构建出专业、可信、安全的安装体验。
无论是个人开发者还是企业级发布,都值得掌握。
更多推荐



所有评论(0)