MsiEmbeddedChainer 表

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

Windows Installer 4.0 或更高版本:不支持。 此表从 Windows Installer 4.5 开始可用。

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

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

这些函数必须通过调用 MsiJoinTransaction 函数来联接当前安装,并且必须调用 MsiEndTransaction 函数来提交多个包的安装。 如果函数在调用 msiEndTransaction 之前返回,安装程序将回滚所有安装。

MsiEmbeddedChainer 表包含以下列。

类型 钥匙
MsiEmbeddedChainer 标识符 Y N
条件 条件 N Y
CommandLine 格式化 N Y
CustomSource N N
类型 整数 N N

 

MsiEmbeddedChainer

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

条件

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

CommandLine

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

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

类型

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)提示的次数,这需要管理员的响应。