自定义操作类型 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 位标志。
备注
启动可执行文件的自定义操作采用命令行,该命令行通常包含动态指定的属性。 如果这也是延迟执行自定义操作,那么在从安装脚本调用自定义操作时,安装程序将使用 CreateProcessAsUser 或 CreateProcess 来创建进程。
导出数据库表时,每个流都会写成一个单独的文件放入以表命名的子文件夹中,使用主键作为文件名(Binary 表的 Name 列),默认扩展名为“.ibd”。 如果文件系统或版本控制系统不支持长文件名,则名称应使用 8.3 格式。 永久性存档文件将流数据替换为使用的文件名,这样在导入表时可以找到该数据。
相关主题