抑制MSI错误代码

时间:2015-04-13 14:33:29

标签: c# .net wix custom-action msiexec

我得到error 2803: dialog view did not find a record for the dialog。这是因为我已经从我的安装程序中明确删除了FilesInUse对话框。这是一个对话框,当有文件锁时,有时会msiexec请求显示该对话框。我的安装程序逻辑没有明确地尝试显示此对话框。我的安装程序具有自定义操作来杀死锁定文件的进程,因此忽略此消息然后进行安装从未出现过问题(但是对于此进程终止,我需要权限,因此必须在对话后运行延迟的自定义操作被要求)。对于我的所有意图和目的,此对话框基本上没用。当此错误代码出现时,不是显示致命错误对话框,而是如何抑制此错误代码?有谁知道在WiX中是否有任何方法可以做到这一点,也许是通过C#自定义动作的形式?陷阱和处理错误代码的任何方法?

1 个答案:

答案 0 :(得分:1)

除非您准备使用自己的UI并忽略FilesInUse对话框请求,否则我认为您无法抑制该错误。或者修改WiX代码(如果允许的话)。基本上你会收到消息并对它们作出反应(或不作出反应):

https://msdn.microsoft.com/en-us/library/aa370573(v=vs.85).aspx

您将返回忽略响应,而不是显示对话框。

你能使用一个在启动时升级并运行MSI的引导程序吗?在这种情况下,整个安装都会升级,并且当它们在InstallFinalize之前运行时,CA会升高,即使它们是立即的。

如果它们是您的应用程序,那么另一种解决方案是将它们与Restart Manager集成,以便告知它们关闭,添加的功能是它们可以保存状态并在必要时恢复它。您不需要您的CA.