自定义操作类型 5

此自定义操作是用 JScript(例如 ECMA 262)编写的。 Windows Installer 不支持 JScript 1.0。 有关详细信息,请参阅脚本

此脚本根据临时二进制流生成。 CustomAction 表的 Source 字段包含指向 Binary 表的键。 Binary 表中的 Data 列包含流数据。 为每行分配一个单独的流。

可从文件插入新的二进制数据,方式是先使用 MsiRecordSetStream,再使用 MsiViewModify,将记录插入表中。 调用自定义操作时,流数据会复制到临时文件中,然后根据自定义操作的类型处理该临时文件。

类型值

CustomAction 表的 Type 列中包含以下值,以指定 32 位自定义操作的基本数值类型。

常量 十六进制 十进制
msidbCustomActionTypeJScript + msidbCustomActionTypeBinaryData 0x05 5

 

Windows Installer 可以在 64 位操作系统上使用 64 位自定义操作。 基于脚本的 64 位自定义操作必须在其数值类型中包含 msidbCustomActionType64BitScript 位。 有关信息,请参阅 64 位自定义操作。 在 CustomAction 表的 Type 列中包含以下值,以指定 64 位自定义操作的基本数值类型。

常量 十六进制 十进制
msidbCustomActionTypeJScript + msidbCustomActionTypeBinaryData + msidbCustomActionType64BitScript 0x0001005 4101

 

目标

CustomAction 表的 Target 字段包含可选的脚本函数。 处理将首先发送脚本进行解析,然后调用可选的脚本函数。

返回处理选项

CustomAction 表的 Type 列中添加可选标志位,以指定返回处理选项。 有关这些选项和值的说明,请参阅自定义操作返回处理选项

执行计划选项

CustomAction 表的 Type 列中包含可选标志位,以指定执行计划选项。 这些选项控制自定义操作的多次执行。 有关这些选项的说明,请参阅自定义操作执行计划选项

脚本内执行选项

CustomAction 表的 Type 列中添加可选标志位,以指定脚本内执行选项。 这些选项将操作代码复制到执行、回滚或提交脚本中。 有关这些选项的说明,请参阅自定义操作脚本内执行选项

返回值

采用脚本编写的可选函数必须返回 JScript 和 VBScript 自定义操作的返回值中所述的值之一。

备注

采用 JScript 或 VBScript 编写的自定义操作需要安装 Session 对象。 安装程序将 Session 对象附加到名为“Session”的脚本。 由于 Session 对象在安装回滚期间可能不存在,因此在脚本中编写的延迟自定义操作必须使用获取延迟执行自定义操作的上下文信息部分描述的 Session 对象的方法或属性之一来检索其上下文。

导出数据库表时,每个流都会写成一个单独的文件放入以表命名的子文件夹中,使用主键作为文件名(Binary 表的 Name 列),默认扩展名为“.ibd”。 如果文件系统或版本控制系统不支持长文件名,则名称应使用 8.3 文件名格式。 永久性存档文件将流数据替换为使用的文件名,这样在导入表时可以找到该数据。

Custom_Actions