安装
MSI软件包时,任何升级的共享文件都会自动强制使用该文件的其他组件/服务重新启动.这是使用Windows Vista及更高版本上的Restart Manager完成的.
在我的情况下,正在升级的文件之一是属于实际运行安装的服务的文件.此服务控制何时重新启动计算机本身,但由于它重新启动,因此它不会从MSI进程获得需要重新启动的返回代码.因此,机器不会重新启动,使系统处于损坏状态.
我需要一些方法来防止重新启动此控制服务,而是允许它重新启动整个系统. Windows Installer可以计划在下次重新引导时复制文件,但是如何在这些共享文件的情况下强制执行此行为?
解决方法
>使用各种重启管理器
MSI properties来阻止重启管理器进入(特别是
MSIRESTARTMANAGERCONTROL = DisableShutdown)
>添加 ScheduleReboot操作以提示用户在完成安装后重新启动
>添加 ScheduleReboot操作以提示用户在完成安装后重新启动