【问题标题】:How to launch Maintenance mode--"Change, Repair, or Remove installation" dialog in WIX如何启动维护模式——WIX 中的“更改、修复或删除安装”对话框
【发布时间】:2023-03-11 02:36:02
【问题描述】:

我已经从这里 http://www.tramontana.co.hu/wix/ 更改了 wix 教程代码,以制作我自己的安装程序。

当我运行安装程序来设置我的应用程序时没有问题。但是当我再次运行安装程序时,会跳出一个窗口说“该产品的另一个版本已经安装...”

但在示例中,在安装程序后运行安装程序时,应该有一个维护模式,“更改、修复或删除安装”对话框。

我正在使用 WixUI_Mondo,我认为它会自动提供维护模式,知道如何启动它吗?

【问题讨论】:

  • 我有安装程序,安装时一切正常。但我无法启动维护模式。谢谢。
  • 终于找到了出路,在CMD中使用“msiexec /i installer.msi REINSTALLMODE=vomus”,运行安装程序,安装一次,这个msi包就可以了永远即使在不同的机器上。这很愚蠢,但很有效。

标签: installation wix repair


【解决方案1】:

但是当我运行安装程序时 又是一个窗口跳出来说 “该产品的另一个版本是 已经安装了……”

这是您在使用完全相同的产品 ID 但不同的包 ID 重新构建安装程序然后再次运行它时遇到的错误。

如果您运行原始 MSI 文件,它应该进入维护模式。

如果您不再拥有原来的 MSI,您仍然可以通过添加/删除程序卸载您的产品。这是可能的,因为 Windows Installer 缓存了具有随机名称的 MSI 文件在 c:\windows\installer\ 下。

除非您需要支持细粒度升级场景(即打补丁),我建议您将产品 ID 设置为 "*" 并按照 wix 帮助主题 How to: Implement a Major Upgrade in your Installer 中的说明进行重大升级.

【讨论】:

    【解决方案2】:

    我希望这是你所缺少的:

    假设您现有的安装程序可以正常工作但缺少用户界面,以下是使用 WixUI 库存对话框集需要遵循的步骤:

    1. 使用其中一个对话框集的 Id 属性将 UIRef 元素添加到安装程序源代码。在你的情况下:

      <Product ...>
      <UIRef Id="WixUI_Mondo" />
      </Product>
      

    您还可以自定义对话框,以便创建自定义“维护”对话框。

    -祝你好运。克里斯

    【讨论】:

    • 糟糕,忘记添加自定义对话框的链接:wix.sourceforge.net/manual-wix3/WixUI_customizations.htm
    • 谢谢 Chris,我已经将 UIRef Id="WixUI_Mondo" 添加到我的 wix 项目中。虽然 UI 很好,但我仍然无法启动也包含在 WixUI_Mondo 中的维护模式对话框。谢谢。
    • 我建议你“重新安装”你的库,或者创建你自己的对话框。您可以模仿这种维护并使其变得更好。
    • 谢谢你,crozer,我也在 Wix 教程中找到了一些信息。出于某种奇怪的原因,小更新和小升级不能简单地通过单击 .msi 文件来运行——它们给出了错误:“该产品的另一个版本已安装。”我们知道,愚蠢的...无论如何,您必须使用以下命令启动它: msiexec /i SampleUpgrade.msi REINSTALL=ALL REINSTALLMODE=vomus 不要问我这对普通用户会有什么影响...您最好从 Autorun.inf 文件启动它或设计一个外部 Setup.exe 外壳来启动它。
    • 哈哈,不管怎样,你让我到了那里。再一次记住我上面的建议,总是有谷歌:谷歌直到你的手指受伤。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-06-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-04-16
    相关资源
    最近更新 更多