如何使用MSI在下次重新启动时安排安装?

时间:2011-06-06 14:54:28

标签: installer wix windows-installer

我们有一个MSI安装程序(使用Wix创建),它可以设置为能够执行升级。我们的客户使用它以静默模式运行msiexec的SMS程序包一次在多台机器上升级我们的应用程序。

这个问题是他们的一些用户在安装程序运行时仍然会运行我们的应用程序。我们不想让这些用户离开,并且在他们使用应用程序时运行安装总是会破坏。

我们理想的解决方案是安装安排在下次机器启动时进行。

这是一个相当庞大的要求清单,但是有谁知道我如何实现这一目标或者我可能会在下一步看到什么?

2 个答案:

答案 0 :(得分:1)

您可以在HKLM\software\microsoft\windows\currentversion\RunOnce下的注册表中添加一个值,它将在用户下次登录时运行。

答案 1 :(得分:0)

Windows Installer会自动检测正在使用的文件。此外,在静默安装期间,它会自动处理它们:

  • 未使用的文件被覆盖
  • 正在使用的文件计划在重新启动后进行更新

正如您所看到的,这有些问题,因为某些文件已更新而某些文件未更新。

一个好的解决方案是将REBOOTPROMPT属性设置为“S”。这样,目标机器在安装后会自动重启。

不幸的是,MSI软件包无法检测正在运行的进程,停止安装并在下次重新引导时安排它。这只能通过自定义EXE引导程序来完成。