为什么在/ X期间MSIEXEC无法删除?

时间:2010-10-19 16:42:17

标签: windows-installer msiexec uninstaller

我们有一个已安装的应用程序(MSI),我们尝试使用以下命令行选项将其删除:

MsiExec.exe /x{code} /qn /liwearucmopvx+ C:\Log\UnInstall.tra

但有时(不知道为什么)它会产生以下错误:

MSI (s) (BC:F8) [02:02:50:031]: Note: 1: 1725 
MSI (s) (BC:F8) [02:02:50:031]: Note: 1: 2262 2: Error 3: -2147287038 
MSI (s) (BC:F8) [02:02:50:031]: Note: 1: 2262 2: Error 3: -2147287038 
MSI (s) (BC:F8) [02:02:50:031]: Product: Application -- Removal failed.

这些是什么意思?

2 个答案:

答案 0 :(得分:1)

找不到东西。根据errlook.exe:

  • 错误3是Win32错误“系统找不到指定的路径。”
  • -2147287038是“无法找到%1”的HRESULT。

SysInternals' Process Monitor这样的实用程序可能会帮助您找出未找到的内容(或者可能是在附近的其他MSI日志消息中)。

答案 1 :(得分:1)

根据经验我会说这是一个自定义操作,只有在卸载时才会运行,从而触发错误,从而导致卸载回滚。结果是在解决错误之前无法卸载的产品。伟大的工作Microsoft!

此卸载的产品是什么?解决此类卸载问题的最简单方法是为已安装的产品创建次要升级,并可选择将其作为补丁包装并安装。这将在已解决卸载序列中的错误的系统上重新缓存新的MSI文件。然后,这个新的缓存MSI用于卸载。这是耗时且困难的工作,需要大量的QA工作,并且通常仅在绝对必要时才进行。

其他选项包括使用 MsiZap 来删除产品的MSI注册。这将在系统上留下文件和注册表垃圾,但产品将不再注册。 (msizap已过时,已弃用且不受支持。请勿使用它 - 与新Windows不兼容的太多版本。也许尝试this support tool代替

如果您提供更多信息,这应该是可以解决的,而不会有太多麻烦。您可能希望通过工具运行该日志文件,以便在您查看其他错误时查找。 Microsoft为此提供了 WiLogUtl.exe 实用程序。它仅在Microsoft SDK中可用,这是一个惊人的下载。