【问题标题】:WiX/MSI installer successfully runs for uninstalling an app but the app has not been uninstalledWiX/MSI 安装程序成功运行以卸载应用程序,但尚未卸载该应用程序
【发布时间】:2019-07-03 07:37:18
【问题描述】:

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

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

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

注意:我使用的是最新的version 3.11 的 Wix

更新

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

【问题讨论】:

  • 下面有几个更新。
  • 您是否在“添加/删除程序”中找到了多个被您全部卸载的条目?
  • @SteinÅsmul 不,只有一个条目。
  • 我猜可能是旧版本安装了“per-user”而新版本安装了“per-machine”。 InstallScope 属性在 Package 元素中的含义是什么?如果有,请检查新旧来源。
  • 为了清楚起见,WiX 工具集是 MSI 软件包的几个构建器之一。 Windows Installer(例如 msiexec)对此类包执行操作。 Windows 程序和功能(fka 添加/删除程序)是任何类型安装的注册表。对于 Windows Installer 安装,它只列出了对包进行 msiexec 操作的命令。因此,无论从何处调用 Windows Installer 或使用哪个工具构建软件包,Windows Installer 的行为都应该相同;唯一的区别是操作的参数是什么。

标签: wix wix3.11


【解决方案1】:

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

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

不妨试试这个程序:

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

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


隐藏产品:也有可能某些副本可能会从上述列表中隐藏。

【讨论】:

  • 我刚刚添加了一个 UPDATE - 以防您有任何 cmets。
猜你喜欢
  • 1970-01-01
  • 2019-02-15
  • 2019-12-13
  • 1970-01-01
  • 1970-01-01
  • 2019-05-18
  • 2022-07-23
  • 1970-01-01
  • 2011-02-16
相关资源
最近更新 更多