格式 化
格式化数据类型是一个文本字符串,用于解析嵌入的属性名称、表键、环境变量引用和其他特殊子字符串。 可识别以下约定来解析字符串:
没有匹配对的方括号([ ])或大括号({ })将保留在文本中。
如果遇到窗体 [propertyname] 的子字符串,则它将被属性的值替换。 如果 propertyname 不是有效的属性名称,则子字符串解析为空。 例如,LaunchCondition 表的说明列 采用格式化字符串。 如果 ERRORTXT 已设置为“请与支持人员联系”。则显示失败启动条件的文本将包含此字符串。 如果未设置 ERRORTXT,则显示失败启动条件的文本只是“系统不符合安装要求”。
条件 描述 Version9X 系统不符合安装要求。 [ERRORTXT] 可以迭代方括号,属性名称是从内到外解析的。例如,假设子字符串 [[PropertyA]] 出现在文本中。 首先,检索属性属性A 的值。 如果值是有效的属性名称(如 PropertyB),则会检索 PropertyB 的值,并将整个子字符串 [[PropertyA]] 替换为 PropertyB 的值。 如果 PropertyA 不是有效的属性名称,或者 PropertyA 的值不是有效的属性名称,则子字符串为空。
如果找到表单 [%环境变量] 的子字符串,则环境变量的值将替换为子字符串。
如果找到表单 [\x] 的子字符串,则它将被字符 x 替换,其中 x 为一个字符,无需进一步处理。 仅保留反斜杠后的第一个字符;删除其他所有内容。 例如,若要包含文本左括号 ([),请使用 [\[]。 文本 [\[]方括号文本[\]] 解析为 [方括号文本]。
如果子字符串括在大括号({ })中,并且不包含括在方括号([ ])中的属性名称,则子字符串保持不变,包括大括号。
如果子字符串括在大括号({ })中,并且它包含一个或多个用方括号括起来的属性名称([ ]),那么,如果所有属性名称都有效,则会显示文本(带有解析的替换),而不显示大括号。
如果找到窗体 [~] 的子字符串,则会将其替换为 null 字符。 这用于在 注册表表中创作 REG_MULTI_SZ 字符串。 请注意,[~] 还用于使用 Environment 表将值追加或前缀到环境变量。
如果找到 [#filekey] 形式的子字符串,则会将其替换为文件的完整路径,其值 filekey 用作 File 表的键。 [#filekey] 的值保持为空,在安装程序运行 CostInitialize作、FileCost作以及 CostFinalize作之前,不会替换为路径。 [#filekey] 的值取决于文件所属组件的安装状态。 如果组件从源运行,则该值是文件源位置的路径。 如果组件在本地运行,则该值是安装后文件的目标位置的路径。 如果组件的作状态不存在,则组件的安装状态用于确定 [)。
如果找到 [$componentkey] 形式的子字符串,则会将其替换为组件的安装目录,其值 componentkey 用作 组件表中的键。 [$componentkey] 的值保持为空,在安装程序运行 CostInitialize作、FileCost作以及 CostFinalize作之前,不会替换为目录。 [$componentkey] 的值取决于组件的安装状态及其发生位置。 在 注册表表的“值”列中,此子字符串可以引用组件的作状态或请求的作状态。 在所有其他情况下,此子字符串是指组件的作状态。 例如,如果组件从源运行,则该值为文件的源目录。 如果组件在本地运行,则该值是安装后的目标目录。 如果该组件不存在,该值将留空。 Windows Installer 跟踪组件的作和请求的安装状态。 例如,如果组件已安装,则它可能具有请求的本地状态和 null 的作状态。 有关检查组件的安装状态的详细信息,请参阅 检查功能、组件、文件的安装。
请注意,如果组件已安装,并且当前安装期间未重新安装、删除或移动组件,组件的作状态为 null,并且字符串 [$componentkey] 的计算结果为 Null。
如果找到 [!filekey] 形式的子字符串,则会将其替换为文件的完整短路径,其值 filekey 用作 文件表的键。
此语法仅在注册表或 IniFile 表的 Value 列中使用时才有效。 在其他列中使用时,此语法将被视为 [#filekey] 。