除了 [Types]
、[Components]
和 [Tasks]
之外,所有将条目分为参数的部分都支持两个可选参数。它们是:
Components
一个由空格分隔的组件名称列表,它告诉安装程序该条目属于哪些组件。如果最终用户从这个列表中选择了一个组件,那么该条目就会被处理(例如:文件会被安装)。
没有指定 Components
参数的条目总是会被处理,除非其他参数指示它不应该被处理。
示例:
[Files]
Source: "MYPROG.EXE"; DestDir: "{app}"; Components: main
Source: "MYPROG.CHM"; DestDir: "{app}"; Components: help
Source: "README.TXT"; DestDir: "{app}"
Tasks
一个由空格分隔的任务名称列表,它告诉安装程序该条目属于哪个任务。如果最终用户从这个列表中选择了一个任务,那么该条目就会被处理(例如:文件会被安装)。
没有指定 Tasks
参数的条目总是会被处理,除非其他参数指示它不应该被处理。
请注意,在“选择开始菜单文件夹”向导页面上的“不创建开始菜单文件夹”复选框不会影响带有 Tasks
参数的 [Icons]
条目,因为它们有自己的复选框。
示例:
[Icons]
Name: "{group}\My Program"; Filename: "{app}\MyProg.exe"; Components: main; Tasks: startmenu
Name: "{group}\My Program Help"; Filename: "{app}\MyProg.chm"; Components: help; Tasks: startmenu
Name: "{commondesktop}\My Program"; Filename: "{app}\MyProg.exe"; Components: main; Tasks: desktopicon
除了空格分隔的列表之外,您还可以使用布尔表达式作为 Components
和 Tasks
参数。支持的运算符包括 not
、and
和 or
。例如:
[Components]
Name: a; Description: a
Name: b; Description: b
[Tasks]
Name: p; Description: a or b; Components: a or b
Name: q; Description: a and b; Components: a and b
Name: r; Description: not a or b; Components: not a or b
Name: s; Description: not (a or b); Components: not (a or b)
Name: t; Description: a or b - old style; Components: a b
注意:在上面的
[Tasks]
示例中,最后一个任务的描述提到了“旧样式”。这是因为在早期版本的 Inno Setup 中,当多个组件名称连续列出而没有使用明确的逻辑运算符时,它们被解释为逻辑“或”(OR)关系。然而,为了清晰和避免混淆,建议始终明确使用or
运算符来表示这种关系。