Windows installer 可以在没有用户交互的情况下取消以编程方式启动的MSI吗?

Windows installer 可以在没有用户交互的情况下取消以编程方式启动的MSI吗?,windows-installer,cancellation,Windows Installer,Cancellation,假设我使用如下命令启动一个MSI:msiexec.exe/qb/I mypackage.MSI,然后MSI开始做它的事情。以这种方式启动的MSI是否可以在用户不手动单击“取消”按钮的情况下自动取消 MSI窗口是这样显示的,我想知道是否有任何方法可以让MSI自动进入这个场景,而不需要用户点击“取消”按钮,现在这个按钮是灰色的 注意:有人声称他们没有按取消按钮,我想他们真的按了。我只是想知道,如果可能发生错误或什么事情,是否有人知道MSI调用是否会自动取消。FWIW,/qn不会有任何UI。屏幕截图显

假设我使用如下命令启动一个MSI:msiexec.exe/qb/I mypackage.MSI,然后MSI开始做它的事情。以这种方式启动的MSI是否可以在用户不手动单击“取消”按钮的情况下自动取消

MSI窗口是这样显示的,我想知道是否有任何方法可以让MSI自动进入这个场景,而不需要用户点击“取消”按钮,现在这个按钮是灰色的


注意:有人声称他们没有按取消按钮,我想他们真的按了。我只是想知道,如果可能发生错误或什么事情,是否有人知道MSI调用是否会自动取消。

FWIW,/qn不会有任何UI。屏幕截图显示a/qb!基本用户界面和禁用取消按钮


我99%确定MSI不会公开API来请求取消正在运行的MSI。如果您有一个使用API启动安装事务的自定义EXE,那么您可以调用API来取消它

你能解释一下你的用例吗?这是取消测试还是什么?我不想取消。我只需要知道是否有可能MSI本身触发了取消,或者是否必须由用户通过单击取消按钮来完成。基本上,有人声称他们没有按“取消”按钮,我想他们确实按了。你记录安装了吗?看看事件查看器?我可以想到许多场景,如UAC提升提示、安装程序失败、自定义操作返回userexit,这些场景会导致安装程序无法开始或停止并回滚。但这并不意味着有人按了“取消”按钮。如果它正在执行回滚,它会显示“取消…”吗?不知道如何触发它执行回滚。有什么想法吗?必须有自定义的操作-这将是非常不寻常的,即使你没有添加任何操作,也可能有一些是生成的。查看原始MSI文件的CustomAction表。为了切中要害,如果CA返回错误\u INSTALL\u USEREXIT,那么它将显示为已被用户取消。