从 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
之后安排的即时自定义操作以检测重新启动状态。
延迟(使用 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
之后安排的即时自定义操作以检测重新启动状态。