在WIX安装序列中动态更改CA.

时间:2013-05-03 10:49:19

标签: wix custom-action wix2 install-sequence

根据我在安装程序中设置的属性,我发现根据我在安装程序中设置的属性来确定我在安装中的某些位置调用的自定义操作非常有用。

例如;如果我想使用单独的DLL来连接不同版本的SQL(SSRS 2005 / 2008R2是特定的)。

假设识别出应该运行哪个CA(通过找出安装程序指向的SSRS版本)的操作是使用" immediate"执行的。可能会或可能不会执行的CA取决于此结果,并且" deferred"

如何在安装过程中动态更改安装的某些部分执行的延迟CA?这是否可能?

((WiX 2.0首选,但可以接受更高版本的答案))

1 个答案:

答案 0 :(得分:3)

在数据驱动的自定义操作中,修改机器状态(听起来就像是在编写),立即自定义操作应该读取MSI中的表和/或属性,以安排相应的延迟自定义操作来更改机器。

要实现此目的,将定义所有自定义操作(.wxs文件中的CustomAction个元素),但仅安排立即自定义操作(Custom/@Action中的InstallExecuteSequence个元素) 。立即自定义操作查看,制定决策,为延迟的自定义操作设置CustomActionData,然后使用相应的延迟自定义操作的名称调用::MsiDoAction(),以将延迟的自定义操作添加到安装脚本中那一点。稍后,当Windows Installer执行安装脚本(安装的延迟部分)时,延迟的自定义操作将启动所有数据。

如果您正在寻找示例,WiX工具集自定义操作会一直执行此操作。