InnoSetup使用说明

Inno Setup 是什么

Inno Setup 是一个免费的 Windows 安装程序制作软件。第一次发表是在 1997 年,Inno Setup 今天在功能设置和稳定性上的竞争力可能已经超过一些商业的安装程序制作软件。

创建安装程序

安装程序用编译脚本的方式创建,脚本其实就是一个类似 .INI 文件格式的 ASCII 码文本 文件。 (它不象你想象的那么复杂) 脚本用一个“.iss” (表示 Inno Setup Script) 的扩展名

脚本文件一般可以用安装程序编译器程序内置的编辑器进行编辑。在你编写完脚本后,下一个最终步骤就是选择安装程序编译器中的“编译”。 创建完成后,就可以运行根据你脚本编 译的安装程序了

例子:Inno Setup 安装目录下的 Samples 子目录中

脚本格式概述

Inno Setup 准备了一些段。每个段控制一个不同方面的安装程序部分。每个段用包含在括号 [] 中的段名开始,每个段里面是一些相关的条目。 其中有两种不能类型的段: 有些就象 [Setup] 段,条目包含指示名和值 (格式为 Directive=Value),还有一些就象 [Files] 段,条目被参数分隔。 这里是一个例子:

[Setup] 
AppName=My Program  
[Files]  
Source: "MYPROG.EXE"; DestDir: "{app}" 

你可以通过在行起始位置加个分号“;”在脚本中写入“注释” (编译时被编译时忽略)。例 如: ; 这是一条注释,放在这里只是要提醒我自己...

段中参数

所有脚本中的段,除 [Setup]、[Messages]、[CustomMessages] 和 [LangOptions] 段,包含的 行中可有多个各自的参数。下列是 [Files] 段中的一个举例:

[Files] 
Source: "MYPROG.EXE"; DestDir: "{app}"  
Source: "MYPROG.HLP"; DestDir: "{app}"  
Source: "README.TXT"; DestDir: "{app}"; Flags: isreadme

每个参数都由一个名字组成,然后跟随一个冒号,然后是一个值。除非另外说明,如果参数 未指定,将设定为一个默认值。一行中多个参数用分号隔开,并且可以以任何次序列出。

参数的值如果包含一个用户定义的字符串时,一般来说用双引号 (") 包含,例如象文件名。 引号使用不是必需的,但这样做可能会在值中的首位或末位被加入空格,以及分号和双引号。 在要引用的值中使用一个双引号字符,用两个连续的双引号字符,例如: "This "" contains "" embedded "" quotes" 安装程序编译器会将它视作: This " contains " embedded " quotes

常量

脚本中的项目大部分可以嵌入常量。这些预定义的字符被包含在括弧 { } 中。安装程序或 卸载程序会根据用户选择和系统配置将这些常量翻译为文字值。例如,{win} 在大部分系统 中会被翻译为“C:\WINDOWS”。 字 符 “ { ” 视 作 为 常量开始。如果你想将它作为实际字符使用,你必须使用两个连续的“{” 字符。(对于“}”则不需要。) 当在常量后面直接跟随一个反斜杠时,如 果 常量的值末端已经包含了一个反斜杠号,安装程 序或卸载程序将自动删除该反斜杠号。 因此,如果一个特殊常量值是“C:\”, {constantname}\file 将翻译为“C:\file”, 而 不是“C:\file”。如果你想防止意外,将反斜框放 入 { } 字符中,例如,{app}{\}

[Setup] 段

这个段包含用于安装程序和卸载程序的全局设置。某些提示对于你创建的任何安装程序都是 必需的。这是 [Setup]段的一个示例:

[Setup]  
AppName=My Program  
AppVerName=My Program version 1.4  
DefaultDirName={pf}\My Program  
DefaultGroupName=My Program 

[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 

[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: isreadme 

[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}" 

[Run] & [UninstallRun] 段

[Run] 段是可选的,用来指定程序完成安装后、在安装程序显示最终对话框之前要执行的程 序数,[UninstallRun] 段也可样是可选的,用来指定在卸载第一步要执行的程序数。除在下 面有注释的外,两个段用相同的语法。 程序按它们在脚本中的出现顺序执行。按默认,当处理 [Run]/[UninstallRun] 段条目时,安 装程序/卸载程序将在处理下一个任务之前等待,直到程序终止。除非使用了 nowait, shellexec 或 waituntilidle 标记。 注意,按默认,如果 [Run] 段队列文件中的一个正在执行的程序要在下一次重新启动后替 换 (通过调用 MoveFileEx 或通过修改 wininit.ini),安装程序将进行侦测,并在安装结束后 提示用户重新启动电脑。如果你不想这么做,设置 RestartIfNeededByRun 指示为 no。 下面是 [Run] 段的一个示例。

[Run]  
Filename: "{app}\INIT.EXE"; Parameters: "/x"  
Filename: "{app}\README.TXT"; Description: "查看自述文件"; Flags: postinstall shellexec skipifsilent  
Filename: "{app}\MYPROG.EXE"; Description: "运行应用程序"; Flags: postinstall nowait skipifsilent unchecked

摘自百度文库

你可能感兴趣的:(InnoSetup使用说明)