如果我遗漏了任何重要的细节,我想提前道歉。
我正在尝试执行升级,在安装新版本之前应删除以前版本的软件(和所有组件)。
我会尽量避免让您对细节感到厌烦,并说如果您进行“典型”安装,一切都会按计划进行。如果您选择进行高级安装(指定所有用户的安装、安装位置等),那么它似乎完全跳过了“卸载以前的版本”步骤。
到目前为止,我已经完成了以下工作:
- 编辑了我的 UpgradeVersion 标签以匹配另一个 stackoverflow 问题的建议
- 验证“OLDVERSIONBEINGUPGRADED”属性被正确设置
- 验证升级代码/ID 是否相同,版本号是否连续(从 1.0.8 升级到 1.0.10)——毕竟,“典型”安装工作正常!
- 遵循这里给出的建议:WiX——总是覆盖以前的版本并遵循这个:http ://wix.sourceforge.net/manual-wix3/major_upgrade.htm
- 尝试通过手动调用 msiexec 来通过其产品 ID 卸载以前的版本来实现 hack(这失败了,因为我们已经在安装一些东西 - 有没有更好的方法来安排这个?)
我的产品/升级部分如下所示:
<Product Id="GUID1" UpgradeCode="GUID2" Version="1.0.10.0">
<Package Compressed="yes" InstallerVersion="200"/>
<MajorUpgrade Schedule="afterInstallInitialize"
DowngradeErrorMessage="Another version of [ProductName] is already installed."/>
<Upgrade Id="GUID2">
<UpgradeVersion Minimum="1.0.10" OnlyDetect="yes"
Property="NEWERVERSIONDETECTED" />
<UpgradeVersion Maximum="1.0.10" IncludeMaximum="no"
Property="PREVIOUSVERSIONINSTALLED" />
</Upgrade>
我是 Wix 新手,所以我在描述我的问题时可能忽略了重要的细节。如果我忽略了包含重要内容,请告诉我。
提前感谢您提供的任何意见。