MsiEmbeddedChainer 表

使用此表创作多包安装。 MsiEmbeddedChainer 表中的每一行引用了一个不同的用户定义函数,该函数可用于从单个包安装多个 Windows Installer 包。 用户定义函数的可执行文件存储在 Windows Installer 包中。

Windows Installer 4.0 或更低版本:不支持。 此表从 Windows Installer 4.5 开始提供。

启用了远程桌面服务角色的 Windows Server 2008 R2:不支持。 如果启用了远程桌面服务角色,则使用 MsiEmbeddedChainer 表的多包安装将失败。

若要从单个包安装多个包,MsiEmbeddedChainer 表中列出的用户定义函数之一必须在 Condition 字段中具有计算为运行操作的条件语句。 如果多个函数具有计算为运行的条件,则只有一个函数可以运行。 这种情况是一个错误,无法保证哪个函数将运行。 如果安装需要其他自定义操作,则应将这些操作创作到 CustomAction 表和序列表中。

函数必须通过调用 MsiJoinTransaction 函数加入当前安装,并且必须调用 MsiEndTransaction 函数才能提交多个包的安装。 如果函数在调用 MsiEndTransaction 之前返回,安装程序将回滚所有安装。

MsiEmbeddedChainer 表包含以下列。

类型 密钥 Nullable
MsiEmbeddedChainer Identifier Y N
条件 条件 N Y
CommandLine 已设置格式 N Y
CustomSource N N
类型 整数 N N

 

MsiEmbeddedChainer

表的主键。 此值是此行描述的用户定义函数的唯一标识符。

Condition

用于运行用户定义函数的条件语句。 可以使用修改此字段计算的属性值的转换启用或禁用 MsiEmbeddedChainer 表中列出的函数。 有关详细信息,请参阅在条件语句中使用属性

CommandLine

此字段中的值是传递给 Source 列中标识的可执行文件的命令行字符串的一部分。 安装程序将此字段中的值追加到事务句柄,以生成命令行。 如果此列中的值为 null,则命令行仅包含事务句柄。

Source

用户定义函数的可执行文件的位置。 如果 Type 列中的值为 2,则此列可以包含 Binary 表中的外部键。 如果 Type 列中的值为 18,则此列可以包含File 表中的外部键。 如果 Type 列中的值为 50,则此列可以包含Property 表中的外部键。

Type

MsiEmbeddedChainer 表中列出的函数使用以下自定义操作数值类型进行描述。 此列只能包含以下三种数值类型的值;自定义操作标志的任何其他组合将被忽略。

自定义操作类型 自定义操作标志 十六进制 十进制
自定义操作类型 2 msidbCustomActionTypeExe + msidbCustomActionTypeBinaryData 为 0x002 2
自定义操作类型 18 msidbCustomActionTypeExe + msidbCustomActionTypeSourceFile 0x012 18
自定义操作类型 50 msidbCustomActionTypeExe + msidbCustomActionTypeProperty 0x032 50

 

备注

Windows Installer 不会阻止此表中的用户定义函数在应用程序播发期间运行。 可以在 Condition 列中使用条件语句来防止在播发期间运行函数。

Windows Installer 还提供非嵌入式外部 UI 处理程序,用于在 Windows Installer 包的基础上生成丰富的用户界面。 有关将外部 UI 处理程序与 Windows Installer 搭配使用的详细信息,请参阅使用 MsiSetExternalUI 监视安装

MsiPackageCertificate 表列出用于验证进行多包安装的安装包标识的数字签名证书。 可以使用此表减少多包安装显示需要管理员响应的用户帐户控制 (UAC) 提示的次数。