我只想在卸载时重新启动。这是我的WiX文件中的一个片段:
<InstallExecuteSequence>
...
<Custom Action="CleanRegistry" Sequence="7100">REMOVE~="ALL" AND NOT UPGRADINGPRODUCTCODE</Custom>
<ScheduleReboot Sequence="7200">REMOVE~="ALL" AND NOT UPGRADINGPRODUCTCODE</ScheduleReboot>
</InstallExecuteSequence>
运行生成的MSI会生成以下日志:
MSI (s) (48:7C) [10:19:29:951]: Skipping action: CleanRegistry (condition is false)
MSI (s) (48:7C) [10:19:29:951]: Doing action: ScheduleReboot
同样的条件如何评估为False然后为True? ScheduleReboot是否会忽略其条件?
编辑:我也尝试使用条件REBOOT~ =“Force”在我的习惯请求重启时有条件地执行命令。此条件永远不会评估为true,并且我的命令没有运行。通过从自定义操作调用MsiSetProperty来设置该属性。要么这个自定义操作不起作用,要么我在我的情况下犯了错误!有什么建议吗?
答案 0 :(得分:1)
某些操作可能是设置REBOOT属性。您应该能够在日志中看到它。最常见的原因可能是文件正在使用中。
答案 1 :(得分:0)
我不知道为什么原始代码失败了但我最终解决了以下问题,只会在升级或卸载时重新启动。
<ScheduleReboot Sequence="7200">REMOVE~="ALL"</ScheduleReboot>