在"添加或删除程序"下,我可以看到五个版本:
- ApplicationName v3.0.4.0
- ApplicationName v3.0.4.18
- ApplicationName v3.0.5.27
- ApplicationName v3.0.5.28
- ApplicationName v3.0.5.29
尝试安装ApplicationName v3.0.5.30时,不会删除所有以前的版本。保留的版本是:
- ApplicationName v3.0.4.0
- ApplicationName v3.0.4.18
我已经阅读了所有关于如何实现WiX安装程序升级?
我使用的代码是:
<Product Id="*"
UpgradeCode="$(var.UpgradeCode)"
Version="$(var.Version)"
Language="1033"
Name="$(var.ProductDisplayName) (v$(var.Version))"
Manufacturer="Unknown">
<Package InstallerVersion="380" Compressed="yes"/>
<Media Id="1" Cabinet="IileServer.cab" EmbedCab="yes" />
<Property Id="PREVIOUSVERSIONSINSTALLED" Secure="yes" />
<Upgrade Id="$(var.UpgradeCode)">
<UpgradeVersion
Minimum="0.0.0.0" Maximum="99.0.0.0"
Property="PREVIOUSVERSIONSINSTALLED"
IncludeMinimum="yes" IncludeMaximum="no" />
</Upgrade>
<InstallExecuteSequence>
<RemoveExistingProducts Before="InstallInitialize" />
</InstallExecuteSequence>
我做错了什么?
我还尝试构建v3.0.6.0版本,安装后我得到了相同的结果。
Versions v3.0.5.X was removed
Versions v3.0.4.X was not uninstalled
升级代码对所有版本都是一样的,我用奥卡看了看图像
图像上的最后一次升级代码适用于3.0.6.0版
忽略数字
:从ProductVersion property
的MSI SDK文档中提取:
">Note that Windows Installer uses only the first three fields of the product version. If you include a fourth field in your product version, the installer ignores the fourth field...At least one of the three fields of ProductVersion must change for an upgrade using the Upgrade table.
">
为了摆脱野外安装,有几种方法。
按产品代码卸载
:如果您提供内部应用程序,我只需要获得产品代码列表并在公司范围内卸载:如何找到已安装MSI安装程序的产品GUID?然后,您组装的产品代码列表可以传递给msiexec.exe /x {productcode}
,如第3节所述。只是一个简单的批处理文件。或者,您可以尝试WMI或其他方法之一。
按升级代码卸载 :您可以使用以下代码检查所有安装版本是否共享相同的升级代码:如何查找已安装MSI文件的升级代码?(他们可能会这样做(。这里甚至还有VBScript版本。插入一个答案链接,链接到其他几种卸载方式,例如卸载共享相同升级代码的所有设置。和一个直接链接到实际代码这样做(通过升级代码卸载(。
按产品名称卸载 :您也可以按产品名称匹配进行卸载。这里的一些示例(VBScript(:使用msiexec卸载应用程序时,是否有GUID的替代方案?。这是一个。NET DTF卸载函数:卸载程序(非常简单,需要调整以供实际使用(。
一些链接:
- Wix MajorUpgrade不会检测到产品版本的最后位置
- http://blog.deploymentengineering.com/2010/08/wix-users-exceeding-version-limits.html(这是一个奇特的解决方法(
- Powershell:通过UpgradeCode卸载应用程序
- Wix MajorUpgrade问题(AllowSameVersionUpgrades Wix概念(