我正在寻找一种仅在有多个用户登录到目标计算机的情况下才在 WIX 安装程序中使用提示 ScheduleReboot 操作的方法。到目前为止,我找不到条件或其他内置方式来做到这一点,我决定在编写自定义操作之前在这里询问。
谢谢。
@Stein Asmul qustions 的答案:
该应用程序是一个开发工具,可以部署在具有比 Windows xp 更新的任何类型的 Windows 操作系统的任何类型的机器上。我需要在打开多个会话的情况下重新启动,因为该应用程序涉及多个用户拥有的进程,这些进程在安装期间启动,然后在 Windows 启动时启动。当这些进程对一个用户关闭而对另一个用户打开时,可能会导致应用程序处于无效状态,或者至少导致我们不打算支持的状态。由于我没有简单的方法为不是运行安装的登录用户启动这些进程,因此要求重新启动对我来说是一个可以接受的解决方案。
我为 winform 编写代码没有问题,该代码使用 WMI 查询检查登录用户的数量,并根据响应提供重新启动,即使使用其他人已经编写和测试的代码总是很好。我想我可以编写一个 Wix CustomAction 来保存一个属性,该属性指示是否存在多个交互式登录,然后将其用作 ScheduleReboot 的条件,但就像 Wix 中的许多事情一样,它会很复杂,很难调试和最终结果几乎相似。当然,我更愿意从某个地方获得经过测试的“Wix”方式来做到这一点,因为一个简单的 winform 将我的选择限制在我可以用 Wix 做的事情上,但我没有找到任何东西,这不是我要去的事情现在进入。