【问题标题】:Making Wix uninstall an old plug-in when performing an upgrade执行升级时让 Wix 卸载旧插件
【发布时间】:2011-02-27 07:22:45
【问题描述】:

我有一个使用 Wix 安装的主要产品,并且有自己的升级代码

在主要产品的发布之间,我们有时会发布插件来添加或修补某些功能。插件打包在他们自己的 Wix 生成的 .msi 文件中,并带有自己的 UpgradeCodes,并且通常安装附加文件是与主产品分开的文件夹。

我想创建一个新版本的主要产品,其中包含以前在插件中可用的功能。升级到新版本的用户将不再需要该插件,因此最好在升级过程中将其卸载。

当Wix 使用UpgradeCode1 升级产品时,有没有办法让Wix 卸载带有UpgradeCode2 的产品?

===鲍勃回答后更新===

我尝试了多个升级元素,Wix 代码编译正常,但安装程序不起作用

当我双击 .msi 时,我立即收到一个错误对话框,上面写着“意外错误...错误代码是 2711”

根据 Microsoft 的 Windows Installer 错误消息页面,错误 2711 的意思是“在功能表中找不到指定的功能名称 ('[2]')。”

事件查看器列出了 MsiInstaller 的错误: “安装程序在安装此软件包时遇到意外错误。这可能表明此软件包有问题。错误代码为 2711。参数为:{6BEC2276-3211-4E5F-9EF0-2E64B92DE3F4}, ,”

guid 是我要卸载的产品的正确 ProductCode。 msiexec /uninstall {6BEC2276-3211-4E5F-9EF0-2E64B92DE3F4} 成功卸载。

我猜测 guid 后两个逗号之间的空格是找不到的“功能名称('[2]')”。我已经尝试通过将属性 RemoveFeatures="PlugInFeatureId" 添加到元素来手动输入它,但仍然得到相同的结果。

我缺少一些东西来让安装程序构建它应该删除的功能列表?

...

<!--Upgrade the main application-->
<Upgrade Id='$(var.UpgradeCode)'>
  <UpgradeVersion OnlyDetect='no' Property='PATCHFOUND'
    IncludeMinimum='yes' Minimum='1.0.1' Maximum='$(var.BuildVersion)' IncludeMaximum='no'/>
</Upgrade>

<!--Remove the old plugin-->
<Upgrade Id='$(var.PluginUpgradeCode)'>
    <UpgradeVersion OnlyDetect='no' Property='REMOVE' IncludeMinimum='yes' Minimum='1.0.0' Maximum='15.0.0' IncludeMaximum='yes'/>
</Upgrade>

<UIRef Id="WixUI_ErrorProgressText" />

<InstallExecuteSequence>
  <FindRelatedProducts  Before="LaunchConditions" />
  <RemoveExistingProducts After="InstallInitialize" />
</InstallExecuteSequence>

【问题讨论】:

    标签: wix uninstallation


    【解决方案1】:

    是的,只需将其添加为具有正确 UpgradeVersion 子级的第二个 Upgrade 元素。

    【讨论】:

    • 谢谢鲍勃,我试过了,但还是有问题,我已经用更多细节更新了我原来的问题
    • 在运行升级时创建详细日志,您将能够看到调用 RemoveExistingProducts 时发生的情况。
    • 认为我找到了问题,它使用了 Property='REMOVE'。如果我将其更改为 Property='ANYTHINGBUTREMOVE" 那么它会按预期工作。感谢您的帮助 Ian
    • 那么 Property='' 有什么作用呢?这个答案给出了完全不同的建议stackoverflow.com/questions/51801570/…
    猜你喜欢
    • 1970-01-01
    • 2021-09-21
    • 1970-01-01
    • 1970-01-01
    • 2014-12-11
    • 1970-01-01
    • 2015-08-09
    • 2018-04-29
    • 1970-01-01
    相关资源
    最近更新 更多