【发布时间】: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/@InstallScope和Package/@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" />
现在产品是按用户而不是按机器安装的。但是<MajorUpgrade> 不再起作用了。我还尝试将 Product/@UpgradeCode 更改为新的 GUID,并将以下内容添加到我的 WiX 配置中(<MajorUpgrade> 元素下方):
<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