【问题标题】:WiX upgrade doesn't work after changing from per machine to per user installation. How can I uninstall the old version?从每台机器更改为每用户安装后,WiX 升级不起作用。如何卸载旧版本?
【发布时间】:2020-08-10 22:46:05
【问题描述】:

WiX 工具集版本:3.11.2.4516

为了从每台机器切换到每用户安装,我改变了我的 WiX 配置:

<Product Id="*" Name="$(var.ProductName)" Language="1033" Version="1.0.0.1"
  Manufacturer="$(var.CompanyName)" UpgradeCode="eec853e6-9345-4be0-908f-958f212c6f30">

  <Package InstallerVersion="200" Compressed="yes" InstallScope="perMachine" InstallPrivileges="elevated" />

  <MajorUpgrade Schedule="afterInstallInitialize"
    DowngradeErrorMessage="A newer version of $(var.ProductName) is already installed" />

对此(删除Package/@InstallScopePackage/@InstallPrivileges):

<Product Id="*" Name="$(var.ProductName)" Language="1033" Version="2.0.0.0"
  Manufacturer="$(var.CompanyName)" UpgradeCode="eec853e6-9345-4be0-908f-958f212c6f30">

  <Package InstallerVersion="200" Compressed="yes" />

  <MajorUpgrade Schedule="afterInstallInitialize"
    DowngradeErrorMessage="A newer version of $(var.ProductName) is already installed" />

现在产品是按​​用户而不是按机器安装的。但是&lt;MajorUpgrade&gt; 不再起作用了。我还尝试将 Product/@UpgradeCode 更改为新的 GUID,并将以下内容添加到我的 WiX 配置中(&lt;MajorUpgrade&gt; 元素下方):

<Upgrade Id="eec853e6-9345-4be0-908f-958f212c6f30">
  <UpgradeVersion OnlyDetect="no" Property="OLD_SERVICE_INSTALLER_FOUND" Minimum="0.0.0.0" />
</Upgrade>

但这也不起作用。

如果我从按机器安装切换到按用户安装,如何卸载旧版本的软件?

【问题讨论】:

    标签: wix windows-installer upgrade uninstallation


    【解决方案1】:

    你卡住了。这是 Windows 安装程序的限制。

    https://docs.microsoft.com/en-us/windows/win32/msi/major-upgrades

    注意

    如果应用程序安装在每用户安装上下文中, 应用程序的任何重大升级也必须使用 每个用户的上下文。如果应用程序安装在每台机器中 安装上下文,对应用程序的任何重大升级也必须 使用每台机器的上下文执行。 Windows 安装程序将 不跨安装上下文安装主要升级。

    【讨论】:

    • 显然应该可以通过在安装过程中切换到 ALLUSERS 上下文来实现。我在另一个问题中找到了这个答案:stackoverflow.com/a/35064434/10069673 但我使用的是WixUI_Minimal Dialog Set,我不知道如何将这个答案与它结合起来。
    • 在安装每用户安装之前,您需要卸载每台机器实例作为 MSI 之外的预备步骤。
    猜你喜欢
    • 2020-12-03
    • 1970-01-01
    • 2014-06-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-03-30
    • 1970-01-01
    相关资源
    最近更新 更多