Session.FormatRecord 方法

Session 对象的 FormatRecord 方法从模板和记录数据返回格式化字符串。

语法

Session.FormatRecord(
  record
)

参数

record

必需的 Record 对象,其中包含要格式化的模板和数据。 必须在字段 0 中设置模板字符串,后跟任何引用的数据参数。

返回值

此方法不返回值。

备注

FormatRecord 方法使用以下格式进程。

格式化的参数括在方括号 [..] 中。 方括号可以循环访问,因为替换是由内向外解析的。

如果字符串的一部分括在大括号 { } 中,并且不包含方括号,则此部分保持不变,含大括号。

如果字符串的一部分括在大括号中,并且包含一个或多个属性名称,则如果发现所有属性,将显示文本(带有已解析的替换),不含大括号。 如果有任何属性未被发现,则删除大括号中的所有文本以及大括号本身。

使用 FormatRecord 方法化格式字符串

  1. 通过将标记替换为相应记录字段的值来替换数值参数,其中缺失值或 Null 值不生成文本。
  2. 通过将非记录参数替换为相应的值来处理生成的字符串,如以下说明中所述。
    • 如果遇到形式为“[propertyname]”的子字符串,则将其替换为属性的值。
    • 如果发现“[%environmentvariable]”形式的子字符串,则环境变量的值将被替换。
    • 如果发现形式为 [#filekey] 的子字符串,将其替换为文件的完整路径,并将值 filekey 作为关键字写入文件表。 在安装程序运行 CostInitialize 操作FileCost 操作CostFinalize 操作之前,[#filekey] 的值保持为空并且不会替换为路径。 [#filekey] 的值取决于文件所属组件的安装状态。 如果组件是从源运行的,则值是文件源位置的路径。 如果组件是在本地运行,则值是安装后文件目标位置的路径。 如果组件不存在,则路径为空。 有关检查组件安装状态的详细信息,请参阅检查功能、组件、文件的安装
    • 如果发现形式为 [$componentkey] 的子字符串,将其替换为组件的安装目录,并将值 componentkey 作为关键字写入组件表。 在安装程序运行 CostInitialize 操作FileCost 操作CostFinalize 操作之前,[#componentkey] 的值保持为空并且不会替换为目录。 [$componentkey] 的值取决于组件的安装状态。 如果组件是从源运行的,则值是文件的源目录。 如果组件是在本地运行,则值是安装后的目标目录。 如果组件不存在,则值为空。 有关检查组件安装状态的详细信息,请参阅检查功能、组件、文件的安装
    • 如果发现形式为“[\c]”的子字符串,则将其替换为该字符,不进行任何进一步处理。 仅保留反斜杠后的第一个字符;其他部分全部删除。

要求

要求
版本
Windows Server 2012、Windows 8、Windows Server 2008 R2 或 Windows 7 上的 Windows Installer 5.0。 Windows Server 2008 或 Windows Vista 上的 Windows Installer 4.0 或 Windows Installer 4.5。 Windows Server 2003 或 Windows XP 上的 Windows Installer
DLL
Msi.dll
IID
IID_ISession 定义为 000C109E-0000-0000-C000-000000000046

另请参阅

格式化

列数据类型