【发布时间】:2017-05-23 14:12:40
【问题描述】:
我有一个安装各种模块的 wix 包。其中一个模块可能会导致系统重新启动。现在我希望发生的方式是,如果它是 UI 安装,那么在捆绑包安装结束时,我希望出现提示,如果是静默安装,那么我想避免自动重启,因为用户可能不知道安装会导致重新启动。
我查看了各种线程和选项,发现我可以通过“/norestart”参数进行静默安装,这样可以避免自动重启。因此,如果用户没有传递“/ norestart”参数,我想使静默安装失败,并且仅在传递该参数时才允许。我希望“/norestart”会映射到 REBOOT 的特定值(https://msdn.microsoft.com/en-us/library/windows/desktop/aa371101(v=vs.85).aspx),但我观察到的是,无论我是否传递“/norestart”参数,日志中 REBOOT 的值始终为“ReallySuppress”,但在传递参数时不会自动重启,在未传递参数时会重启。我真的很困惑它是如何确定的以及我应该如何以编程方式确定它。
这是来自其中一个组件重新启动时的日志(当我没有传递“/norestart”参数时)
Command Line: ALLUSERS=1 ARPSYSTEMCOMPONENT=1 MSIFASTINSTALL=7 CWD=<...> REBOOT=ReallySuppress CURRENTDIRECTORY=<...> CLIENTUILEVEL=3 MSICLIENTUSESEXTERNALUI=1 CLIENTPROCESSID=2240
这是从它没有重新启动时开始的(当我传递“/norestart”参数时)
Command Line: ALLUSERS=1 ARPSYSTEMCOMPONENT=1 MSIFASTINSTALL=7 CWD=<...> REBOOT=ReallySuppress CURRENTDIRECTORY=<...> CLIENTUILEVEL=3 MSICLIENTUSESEXTERNALUI=1 CLIENTPROCESSID=1984
感谢任何帮助或指针。如果您希望我提供更多信息或有不清楚的地方,请告诉我。提前感谢您的宝贵时间。
参考: https://msdn.microsoft.com/en-us/library/windows/desktop/aa372024(v=vs.85).aspx
https://msdn.microsoft.com/en-us/library/windows/desktop/aa371101(v=vs.85).aspx
【问题讨论】:
标签: wix windows-installer burn reboot