有人知道:
在安装新版本的安装程序之前,如何强制卸载先前安装的任何较小或较大的副本。
如果在运行新的次要/主要安装时无法执行第1步,那么我是否可以至少显示一条消息,表明检测到了先前的版本,并应首先卸载并取消安装程序?
谢谢。
更新:
我已将以下内容添加到我的 settings.wxi 文件中:
<Upgrade Id="$(var.UpgradeCode)">
<!-- Populate NEWERPRODUCTFOUND if there is an installed
package with the same upgrade code
and version is > the version being installed -->
<UpgradeVersion
Minimum="$(var.CurrentVersion)"
IncludeMinimum="no"
OnlyDetect="yes"
Language="1033"
Property="NEWERPRODUCTFOUND" />
<!-- Populate UPGRADEFOUND if there is an installed
package with the same upgrade code
and the version is between the earliest version defined
and the version being installed -->
<UpgradeVersion
Minimum="$(var.FirstVersion)"
IncludeMinimum="yes"
Maximum="$(var.CurrentVersion)"
IncludeMaximum="no"
Language="1033"
Property="PREVIOUSVERSIONSINSTALLED" />
</Upgrade>
我已经在MyProduct.wxs中定义了以下内容:
<?define CurrentVersion="5.0.0.18"?>
<?define FirstVersion="1.0.0.0"?>
<?define UpgradeCode="c1b1bfa0-9937-49eb-812c-5bac06eff858"?>
最后,我已将此添加到我的<InstallExecuteSequence>
<RemoveExistingProducts Before="InstallInitialize" />
但是当我把版本号提高到5.0.0.19时,它仍然没有删除旧版本。
也许我从错误的角度来看待这个问题,在我的"添加/删除程序"窗口中,我看到我的安装程序列为5.0.0.18,而我又看到第二个条目列为5.0.0.19。
每次更改版本号时,我应该更改升级代码吗?我记得读到过不应更改此代码。
有任何想法吗?
谢谢。