我发现根据我在安装程序中设置的属性来决定我在安装的某些点调用哪些自定义操作非常有用。
例如; 如果我想使用单独的 DLL 来连接不同版本的 SQL(具体来说是 SSRS 2005/2008R2)。
假设识别我应该运行哪个 CA 的操作(通过找出安装程序指向的 SSRS 版本)以“立即”执行,并且可能执行或不执行的 CA 取决于此结果并被“延迟”
如何在安装期间动态更改在安装的某些部分执行的延迟 CA?.. 这甚至可能吗?
(((首选 WiX 2.0,但可以接受更高版本的答案))
我发现根据我在安装程序中设置的属性来决定我在安装的某些点调用哪些自定义操作非常有用。
例如; 如果我想使用单独的 DLL 来连接不同版本的 SQL(具体来说是 SSRS 2005/2008R2)。
假设识别我应该运行哪个 CA 的操作(通过找出安装程序指向的 SSRS 版本)以“立即”执行,并且可能执行或不执行的 CA 取决于此结果并被“延迟”
如何在安装期间动态更改在安装的某些部分执行的延迟 CA?.. 这甚至可能吗?
(((首选 WiX 2.0,但可以接受更高版本的答案))
在修改机器状态的数据驱动自定义操作(听起来像您正在编写)中,立即自定义操作应读取 MSI 中的表和/或属性,以安排适当的延迟自定义操作以对机器进行更改。
为此,定义了所有自定义操作(CustomAction
.wxs 文件中的元素),但仅计划了即时自定义操作(Custom/@Action
中的元素InstallExecuteSequence
)。即时自定义操作查看、做出决定、设置CustomActionData
延迟自定义操作,然后::MsiDoAction()
使用适当的延迟自定义操作的名称调用以将延迟自定义操作添加到安装脚本中。稍后,当 Windows 安装程序执行安装脚本(安装的延迟部分)时,延迟的自定义操作将使用其所有数据启动。
如果您正在寻找示例,WiX 工具集自定义操作会一直执行此操作。