Inno Setup 是一个免费的 Windows 安装程序制作软件。第一次发表是在 1997 年,Inno Setup 今天在功能设置和稳定性上的竞争力可能已经超过一些商业的安装程序制作软件。
关键功能:
★ 支持现在所有正在使用的 32 位 Windows 版本: Windows 95,98,2000,Server 2003,XP,Me,NT 4.0 (不需要服务包)。
★ 支持创建单个 EXE 格式的安装程序,使你的程序可以很方便地在网络上发表。同时也支持磁盘延伸。
★ 标准的 Windows 2000/XP 样式向导界面。
★ 定制安装类型,例如:完整安装,最小安装,自定义安装。
★ 完整的卸载功能。
★ 文件安装:
包括完全的“压缩”支持,bzip2 和 7-Zip LZMA 文件压缩。安装程序可以比较文件版本信息,替换正在使用的文件,使用共享文件计数,注册 DLL/OCX 和类型库,以及安装字体。
★ 可以在任意地方创快捷方式建,包括开始菜单和桌面。
★ 创建注册表和 .INI 项目。
★ 完整的 Pascal 脚本引擎。
★ 支持 multilingualLanguagessection 安装。
★ 后台安装和后台卸载。
★ 全部源代码公开 (Borland Delphi 2.0-5.0)
InnoSetup使用的是Pascal脚本,即Delphi的编程语言系!
InnoSetup程序的工程文件一般为*.iss(表示 Inno Setup Script) 的扩展名。脚本类似windows中的ini配置文件框架,支持 A C-like #include 指示,从个别文件放入行到 #include 指示位置的脚本。如:#include "filename.txt",
文件包括
[Setup]
这个段包含用于安装程序和卸载程序的全局设置。某些提示对于你创建的任何安装程序都是必需的。这是 [Setup] 段的一个示例:
[Setup]
AppName=My Program
AppVerName=My Program version 1.4
DefaultDirName={pf}\My Program
DefaultGroupName=My Program
[Types]
这个段是可选的。它用来定义安装程序向导在选择组件面时可供选择的所有安装类型。如果你在 [Components] 段定义了组件,但没有定义类型,在编译时将创建一个默认的安装类型设置。如果你正在使用默认 (简体中文) 消息文件,这些类型等同于下面示例中的类型。例如:
[Types]
Name: "full"; Description: "完全安装"
Name: "compact"; Description: "简洁安装"
Name: "custom"; Description: "自定义安装"; Flags: iscustom
[Components]
这个段是可选的。它定义安装程序向导的选择组件页中显示的所有组件,以便于用户定制安装类型。 光用它一个组件不会做任何事情: 它需要“链接”到其它安装条目。请查阅组件和任务参数。 这里是一个 [Components] 段的示例:
[Components]
Name: "main"; Description: "主文件"; Types: full compact custom; Flags: fixed
Name: "help"; Description: "帮助文件"; Types: full
Name: "help\english"; Description: "English"; Types: full
Name: "help\dutch"; Description: "简体中文"; Types: ful
[Tasks]
这个段是只选的。它定义安装程序在执行安装期间所有由用户定制的任务。这些任务以选项框和单选项形式在附加任务向导页中出现。
光任务本身是不会做任何事情的: 它需要“链接”到其它安装条目。查阅组件和任务参数。 这里是一个 [Tasks] 段的示例:
[Tasks]
Name: desktopicon; Description: "创建桌面快捷方式(&D)"; GroupDescription: "添加快捷方式:"; Components: main
Name: desktopicon\common; Description: "对于所有用户"; GroupDescription: "添加快捷方式:"; Components: main; Flags: exclusive
Name: desktopicon\user; Description: "仅对当前用户"; GroupDescription: "添加快捷方式: quicklaunchicon; Description: "创建快速运行栏快捷方式(&Q)"; GroupDescription: "添加快捷方式:"; Components: main; Flags: unchecked
Name: associate; Description: "文件关联(&A)"; GroupDescription: "其它任务:"; Flags: unchecked
[Dirs]
这个可选段用来定义除创建用户选择的应用程序目录外安装程序自动创建的另外目录。在主应用程序目录下创建子目录对于这个段是公共使用的。 请注意,在使用 [Files] 段安装文件前你无需一定要创建目录,这个段起初用于创建一个空的目录。 这里是一个 [Dirs] 段的示例:
[Dirs]
Name: "{app}\data"
Name: "{app}\bin
[Files]
这是定义安装程序安装文件到用户系统中的可选文件段。 这里是一个 [Files] 段的示例:
[Files]
Source: "CTL3DV2.DLL"; DestDir: "{sys}"; Flags: onlyifdoesntexist uninsneveruninstall
Source: "MYPROG.EXE"; DestDir: "{app}"
Source: "MYPROG.HLP"; DestDir: "{app}"
Source: "README.TXT"; DestDir: "{app}"; Flags: isreadm
[Icons]
这个可选段定义所有创建在开始菜单和/或其它位置 (比如桌面) 的快捷方式。
这里是 [Icons] 段的例子:
[Icons]
Name: "{group}\My Program"; Filename: "{app}\MYPROG.EXE"; WorkingDir: "{app}"
Name: "{group}\Uninstall My Program"; Filename: "{uninstallexe}
[INI]
这是你希望安装程序在用户系统中设置 .INI 文件条目的可选段。这里是 [INI] 段的例子:
[INI]
Filename: "{win}\MYPROG.INI"; Section: "InstallSettings"; Flags: uninsdeletesection
Filename: "{win}\MYPROG.INI"; Section: "InstallSettings"; Key: "InstallPath"; String: "{app}"
[Languages]
Inno Setup 支持多语言安装。[Languages] 段用来定义安装程序中可使用的语言。
安装程序用下列顺序确定在消息中默认使用的语言:
1. 搜索 LanguageID 设置的语言 (通常指定在语言文件 .isl 的 [LangOptions] 段) 匹配首选语言标识和当前用户界面语言或本地 (根据 LanguageDetectionMethod) 子语言标识两者。
2. 如果未发现,只搜索匹配的首选语言标识。如果两个或多个可用文有相同的首选语言标识,它将使用在 [Languages] 段中列出的第一个。
3. 如果未发现,默认为指定在 [Languages] 段的第一个语言。
如果 [Setup] 段的 ShowLanguageDialog 指示设置为 yes (默认),将显示一个选择语言对话框,使用户有机会忽略语言安装选择。
ShowLanguageDialog 指示设置为 yes (默认),将显示一个选择语言对话框,使用户有机会忽略语言安装选择。
下面是 [Languages] 段的一个示例。它定义两个语言: 简体中文,根据标准的汉化版的 Defau