Man*_*ani 2 installer command-line windows-installer wix
我已经使用Wix为我的应用程序创建了一个没有UI的setupkit(这里称为"XYZ").
如果我在运行XYZ.exe时双击MSI,它会通知我进程正在锁定文件:我可以选择终止锁定进程或者我可以中止安装.这很好:作为用户,我可以决定做什么.
但是当我从命令行运行相同的MSI时,
msiexec/i XYZ.msi/quiet/norestart
如果XYZ.exe发现它正在运行它将被杀死.这在我的场景中是绝对不可接受的:MSI应该中止安装并退出.
如果我设置"Mondo"接口(或任何其他接口),相同的setupkit将按预期工作.
解决办法是什么?
您链接到的文章说重启管理器关闭正在运行的进程以缓解重启,它应该在安装完成后启动该进程.它还提到哪些属性控制与Restart Manager的交互:
MSIRMSHUTDOWN当设置为2:
当前正在使用受更新影响的文件的进程或服务仅在已注册重新启动时才会关闭.如果尚未为重新启动注册任何进程或服务,则不会关闭任何进程或服务.
确保MSIDISABLERMRESTART有价值0.在这种情况下,Restart Manager将重新启动它关闭的所有进程和服务.
也可以看看 MSIRESTARTMANAGERCONTROL
如果禁用关闭正在运行的进程,则安装不会失败:它将成功,Windows Installer将启动系统重新启动以完成更新.您可以使用/norestart选项来禁止重新启动.但建议尽快重启,因为系统不处于一致状态.
因此,最好教您的进程与Restart Manager进行通信,以便减轻重新启动.