从 CA 到 Wix 的 Wix 自定义操作设置值

Wix Custom action set value from CA to wix

延迟(使用 impoersonate = no)将值发送到 WIX 到 CA,我正在使用集合 属性 和值

并使用 session.CustomActionData["key"];

在 CA 中收集数据

有什么方法可以将数据从 CA 发回 WIX

<Property Id="RESTART" Secure="yes" Value="false" />

我立即使用,

session["RESTART"] = "true" 

...如何在延迟 CA 中实现此目的

您可以添加一个 InstallFinalize 即时自定义操作,它位于所有延迟操作之后,您可以在那里将捆绑包的 (XML) "RESTART" 重置为您想要的任何值,因为会话将是再次可用。

您不能从延迟的自定义操作修改会话;那时,MSI 正在执行它的脚本,没有会话可言。所以你不能设置一个属性。您需要一些其他机制来传达状态。 WiX 的本机库包括函数 WcaDeferredActionRequiresReboot 来标记需要重新启动,以及 WcaDidDeferredActionRequireReboot 用于在 InstallFinalize 之后安排的即时自定义操作以检测重新启动状态。