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

标签 wix custom-action wix2 install-sequence

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

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

假设识别我应该运行哪个 CA 的操作(通过找出安装程序指向的 SSRS 版本)是“立即”执行的,并且可能执行或不执行的 CA 取决于此结果,并且是“推迟”

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

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

最佳答案

在修改计算机状态的数据驱动自定义操作(听起来像是您正在编写的)中,立即自定义操作应读取 MSI 中的表和/或属性,以安排适当的延迟自定义操作以对计算机进行更改。

为了实现此目的,定义了所有自定义操作(.wxs 文件中的 CustomAction 元素),但仅计划立即自定义操作(Custom/@Action InstallExecuteSequence 中的元素)。立即自定义操作会查看、做出决策、为延迟自定义操作设置 CustomActionData,然后使用适当的延迟自定义操作的名称调用 ::MsiDoAction()此时将延迟的自定义操作添加到安装脚本中。稍后,当 Windows Installer 执行安装脚本(安装的延迟部分)时,延迟的自定义操作将及其所有数据开始。

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

关于wix - 在 WIX 安装序列中动态更改 CA,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16357140/

相关文章:

c# - WiX dll嵌入

wix - 如何在 Wix 中记录属性的值?

visual-studio-2013 - 构建发布时,将 NuGet 与 WIX 结合使用不起作用

c++ - 如何保护 MSI 不被修改

windows-services - 使用WiX(2.0)安装多文件NT服务

assemblies - Wix - ComPlusAssembly - 无法安装类型库

c++ - 如何隐藏或禁用 WIX 安装程序中的取消按钮?

binary - WIX:在安装期间使用临时文件

wix - 如何使用 WiX 将 CustomActionData 传递给 CustomAction?