自定义操作类型 2

此自定义操作调用使用命令行启动的可执行文件。

可执行文件是从临时二进制流生成的。 CustomAction 表的“源”字段包含 Binary 表的键。 Binary 表中的 Data 列包含流数据。 为每行分配一个单独的流。

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

类型值

CustomAction 表的 Type 列中包含以下值,以指定基本数值类型。

常量 十六进制 十进制
msidbCustomActionTypeExe + msidbCustomActionTypeBinaryData 为 0x002 2

 

目标

CustomAction 表的 Target 列包含 Source 列中命名的可执行文件的命令行字符串。

返回处理选项

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

执行计划选项

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

脚本内执行选项

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

返回值

作为可执行文件的自定义操作必须返回值 0 才能成功。 安装程序将任何其他返回值解释为失败。 若要忽略返回值,请在 CustomAction 表的 Type 字段中设置 msidbCustomActionTypeContinue 位标志。

备注

启动可执行文件的自定义操作采用命令行,该命令行通常包含动态指定的属性。 如果这也是延迟执行自定义操作,那么在从安装脚本调用自定义操作时,安装程序将使用 CreateProcessAsUserCreateProcess 来创建进程。

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

Custom_Actions

可执行文件