【问题标题】:Wix uninstall shortcut does not remove app completelyWix 卸载快捷方式不会完全删除应用程序
【发布时间】:2018-03-23 12:44:47
【问题描述】:

我有一个 wix 安装程序,它复制应用程序 dll 并安装 Windows 服务。它还在程序菜单中创建快捷方式(一个用于应用程序,一个用于卸载过程)。 卸载快捷方式如下所示:

 <Shortcut Id="UninstallProduct"
           Name="Application"
           Target="[SystemFolder]msiexec.exe"
           Arguments="/x [ProductCode]" />

应用程序已正确安装,但当我尝试通过快捷方式卸载它时出现问题。安装程序创建的所有文件夹和文件都被删除,但是当我进入添加/删除程序菜单时,我看到了我的应用程序的条目(需要从上下文菜单中删除它 - 它会完全删除应用程序)。

卸载快捷方式有什么问题?如何强制它从系统中删除应用程序?

所有 guid(用于产品、组件)的创建方式如下:Guid="*"

【问题讨论】:

  • 我猜你需要查看卸载日志(默认情况下在你的 %temp% 文件夹中创建),看看卸载过程中到底发生了什么。
  • MSI 安装/卸载是事务——它们要么完全工作,要么完全失败。这就是为什么产品被部分删除是没有意义的。如果您当时打开了“添加/删除程序”并且仍然看到您的条目,则可能是缓存问题 - 我已经看到您可以刷新显示(使用 F5)并且它消失的情况。

标签: c# wix windows-installer installation


【解决方案1】:

我想你已经有了答案,但我会检查其他人提到的两件事:

  1. 检查卸载日志文件。我不知道日志文件是自动生成的 - 除非这是 Windows 10 或其他东西中的新功能。
  2. 如果您认为您的产品已卸载后在Add / Remove 中列出,则说明卸载未正确完成。存在一些可能性。
    • 您的卸载可能有自定义操作,它们会自行删除内容,如果它们没有与它们关联的回滚自定义操作,则在回滚失败的卸载后文件可能会丢失。李>
    • PhilDW 的建议重新打开 Add / Remove 小程序会告诉您卸载是否真的失败了。
    • 您是在真正的测试盒上还是这是您的开发盒? 在开发过程中,在同一个盒子上安装同一产品的多个版本并不少见 - 特别是当您自动生成您的产品 guid 和您的主要升级配置尚未正确设置。在测试虚拟机上进行测试以确保。

总体建议丢失整个卸载快捷方式!自 2000 年代初以来,此类快捷方式一直不受欢迎,我相信它们仍然是微软的标志违规行为。事实上,我相信某些类型的快捷方式实际上是由系统本身自动隐藏的。不久前我写了一个答案:Wix Uninstall Shortcut not working(请快速阅读)。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多