【发布时间】:2020-01-13 16:36:04
【问题描述】:
我有一个奇怪的问题,WiX 安装程序似乎检测到 SELFFOUND 而不是 PREVIOUSFOUND。
我正在将旧的 InstallAware 项目移至 WiX,因此我已将 UpgradeCode 从项目复制到此 Product.wxs
<Upgrade Id='MyGuid'>
<UpgradeVersion OnlyDetect='yes' Property='SELFFOUND' Minimum='!(bind.FileVersion.MainEXE)' IncludeMinimum='yes' Maximum='!(bind.FileVersion.MainEXE)' IncludeMaximum='yes' />
<UpgradeVersion OnlyDetect='yes' Property='NEWERFOUND' Minimum='!(bind.FileVersion.MainEXE)' IncludeMinimum='no' />
<UpgradeVersion Minimum="1.0.0"
IncludeMinimum="yes"
OnlyDetect="no"
Maximum="!(bind.FileVersion.MainEXE)"
IncludeMaximum="no"
Property="PREVIOUSFOUND" />
</Upgrade>
<CustomAction Id='AlreadyUpdated' Error='[ProductName] is already installed.' />
<CustomAction Id='NoDowngrade' Error='A later version of [ProductName] is already installed.' />
<InstallExecuteSequence>
<RemoveExistingProducts After="InstallInitialize"/>
<Custom Action='AlreadyUpdated' After='FindRelatedProducts'>SELFFOUND</Custom>
<Custom Action='NoDowngrade' After='FindRelatedProducts'>NEWERFOUND</Custom>
</InstallExecuteSequence>
并且升级 GUID 与我的 UpgradeCode 属性的产品标签中的匹配。两个版本之间的产品代码不同,但我认为将它们设为相同并不是一个好主意。
旧的 InstallAware 项目安装的版本是 4.11.7311.0,在控制面板中可以看到这个版本。我尝试通过升级安装并删除旧版本的版本是 4.11.7314.0。
由于某种原因,每当我尝试运行新的 WiX .msi 时,它都会抛出 [ProductName] 已安装消息。
我错过了什么吗?因为在我看来一切都是正确的。提前致谢。 Wix 工具集 v3.11。
【问题讨论】:
-
Have a look here please。您可以在编译后在生成的 MSI 中使用升级表中的屏幕截图进行更新吗?从外观上看,您需要取出指向 SELFFOUND 的 UpgradeVersion 元素。
-
谢谢您,这不是我在搜索时发现的问题。我会检查一下并相应地更新我的问题。
标签: wix