WiX/MSI 安装程序成功运行以卸载应用程序,但应用程序尚未卸载

WiX/MSI installer successfully runs for uninstalling an app but the app has not been uninstalled

我使用原作者 Rob MenschingWix Toolset Visual Studio 2017 Extension 为我的 Visual Studio 2017 项目创建了一个 Wix 安装程序。安装程序成功安装了应用程序,但是当我 运行 安装程序再次卸载应用程序时,安装程​​序如预期的那样首先显示修复或卸载应用程序的选项。

当我选择 Uninstall 选项时它成功 运行s 表明它正在卸载并最终显示 Finish 按钮,但是当我进入我的 Windows 10 菜单时应用程序仍然存在并且仍然像往常一样工作 - 这显然意味着它没有被卸载。

我什至重新启动了计算机以查看是否有任何不同,但该应用程序仍然存在并照常工作。 问题:发生这种情况的原因可能是什么 - 补救措施是什么?

注意:我使用的是 Wix

的最新 version 3.11

更新

这是一个 VSTO add-in。现在它的工作方式如下:我从 Windows' Add\Remove 程序中手动卸载了它,然后使用 Wix/MSI 重新安装了它。然后当我再次使用 Wix/MSI 卸载时,它成功卸载了。 问题:为什么最初使用Wix/MSI时没有卸载?

Duplicates:您可能在使用该软件包时多次(至少两次)安装该产品。这种情况经常发生,特别是如果您使用自动生成的产品代码并且尚未设置主要升级结构,或者升级 guid 丢失或更糟的是您将其设置为自动生成。 "families" 产品的升级代码应保持稳定。基本上所有您不想并排安装的相关版本。

因此对于重复安装,产品的卸载只会删除最新的安装,将文件留在原地,因为引用计数不为零,因为还有其他安装。解决方案是保持稳定的升级指南并设置主要升级结构。在此之前卸载所有杂散副本。

也许试试这个程序:

  • Windows 键 + 点击R
  • 键入 appwiz.cpl 并按 Enter

在列表中查找产品的重复副本并将其卸载。


Hidden Products: 上面的列表中也可能隐藏了一些副本。

  • 查找产品代码:您可以使用此处描述的方法列出所有已安装的产品代码和产品名称:
  • 卸载:获得产品代码后,您可以通过此处的方法 3 卸载:Uninstalling an MSI file from the command line without using msiexec
  • 更高级:这里有一些通过脚本卸载的更多选项:.