【问题标题】:MSI Unistall: How to force uninstall UI sequenceMSI Unistall:如何强制卸载 UI 序列
【发布时间】:2011-01-27 17:26:07
【问题描述】:

通过双击我通过 WIX 创建的 MSI 卸载应用程序时,我会看到我设计的“更改、修复、删除”对话框。但是,当通过添加/删除程序或通过msiexec /x 从命令行卸载时,我没有。我得到的只是“你确定要卸载这个程序吗?”

我想强制用户在卸载时始终收到“更改、修复、删除”对话框的提示。原因是我在移除时调用了一些自定义 UI。另一种选择是始终强制用户通过我设计的移除 UI 序列。

关于如何使用 WiX 执行此操作的任何提示?

【问题讨论】:

    标签: wix windows-installer


    【解决方案1】:

    如果您只使用 MSI,很遗憾您无法控制它。通常,要强制卸载 UI 序列,您需要实现一个引导程序并使用所需的 UILevel 调用您的 MSI,而不是让 ARP 直接调用您的 MSI。

    【讨论】:

    • 我怀疑这是前进的方向。您知道描述如何执行此操作的任何好的链接吗?
    • 顺便说一句,我知道如何引导其他安装程序(即 SQL Express、.NET 等)。只是好奇如何引导我自己的 msi。
    • 您可以查看 WiX 团队为 WiX 3.6 准备的使用 Burn 的粗略实施。也看看我对stackoverflow.com/questions/3233642/…的回答
    【解决方案2】:

    如果您想在卸载时在 InstallUISequence 表中显示对话框,请尝试:
    步骤 1:在 UISequence 表中显示对话框的条件是 REMOVE = "ALL"
    第 2 步:“msiexec.exe /x {ProductCode} /qf”
    qf:完整的用户界面
    祝你好运!

    【讨论】:

      【解决方案3】:

      最简单的方法是将ARPNOREMOVE property 设置为1。

      这样用户只能选择更改或修改并使用完整的 UI .覆盖安装按钮有点复杂,通常不值得。

      【讨论】:

      • 设置该属性后,从添加/删除程序中双击应用程序时,我直接进入修复模式,没有 UI。我需要做什么才能启动 UI?下一个问题是,一旦我启动 UI,我需要做什么来创建删除选项?
      • 显示 UI 后,您可以设置属性 Remove="All" 来卸载您的产品。
      • 你也可以看看这个问题:stackoverflow.com/questions/1269289/…
      • 双击添加删除程序条目执行第一个可用操作,通常是卸载或修复。但是用户可以单击更改 (Vista) 或修改 (XP) 按钮以在维护模式下启动 MSI,就像再次启动安装程序一样。如果您还想隐藏“修复”按钮并始终使用“修改”按钮,请将 ARPNOREPAIR 和 ARPNOREMOVE 都设置为 1。这样双击该条目将在维护模式下启动您的 MSI,并提供完整的 UI。
      • 将 RPNOREPAIR 和 ARPNOREMOVE 设置为 1 会导致从“添加删除程序”中双击鼠标无任何操作。真的有道理。
      猜你喜欢
      • 2021-09-23
      • 1970-01-01
      • 2014-02-20
      • 1970-01-01
      • 2016-02-28
      • 1970-01-01
      • 1970-01-01
      • 2010-09-09
      • 2010-09-18
      相关资源
      最近更新 更多