Wix'高级'安装不会卸载以前的版本
-
13-12-2019 - |
题
如果我留出任何重要细节,我想提前道歉。
我试图在安装新的软件(和所有组件)之前执行升级,在安装新的软件(和所有组件)之前。
我会尽量避免使用细节无聊,并说你是否做了'典型的'安装,一切都按计划进行。如果选择要执行高级安装(为所有用户指定安装,安装位置等),那么它似乎完全跳过“卸载以前的版本”步骤。
到目前为止,我完成了以下内容:
为我的升级值标记匹配另一个stackoverflow问题的建议
- 验证了“oldversionbeuppraded”属性正确设置
-verify升级代码/ id是相同的,版本号是顺序(从1.0.8到1.0.10升级) - 毕竟,'典型'安装正常工作!
- 关注此处给出的建议: wix--始终覆盖以前的版本并遵循这个: http://wix.sourceforge.net/manual-wix3/ major_upgrade.htm
-tried通过手动调用msiexec来实现黑客以通过它的产品ID卸载以前的版本(这失败,因为我们已经安装了一些东西 - 有没有更好的方式来安排这个?)
我的产品/升级部分如下所示:
<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 newbie,所以我可能在描述我的问题时忽略了重要细节。如果我忽略了包括重要的东西,请告诉我。
提前感谢您可以提供的任何输入。
解决方案
听起来您正在遇到与我一样的限制,请参阅这个问题。在升级中,您无法更改安装范围(“每个用户”或“每台计算机”)。
在Windows Installer中没有任何简单的方法。您只能制作一个单独的引导exe,exe卸载以前的版本,然后启动新版本的安装。
不隶属于 StackOverflow