如何根据升级代码检测是否安装了应用程序

时间:2013-09-28 13:46:40

标签: wix wix3.7

我正在安装多个产品,但由于它们是在每日构建中自动构建的,因此它们具有各种GUID。他们只有相同的UPGRADE代码......

所以我的问题是: 如果安装了产品(不使用自己的自定义操作),是否可以只使用UPGRADE代码知道?

我在尝试:

    <Property Id="WF_INSTALLED" Value="NOT INSTALLED">
        <ProductSearch Minimum="0" UpgradeCode="{XXXXXXXX-XXXX-XXXX-XXXX-8660911C6596}"/>
    </Property>

但似乎我不能使用它......我也找到了一个注册表记录:

Root='HKLM' Key='SOFTWARE\Microsoft\Windows\CurrentVersion\Installer\UpgradeCodes\XXXXXXX'

其中XXXXXXX转换为UPGRADE Code,但此键下没有值,所以我无法检查它是否存在:(

任何帮助将不胜感激。

编辑:我试图发现是否安装了其他产品,而不是我目前正在安装的产品。

1 个答案:

答案 0 :(得分:2)

您可以使用Upgrade元素执行此操作。请参阅此问题:How to implement WiX installer upgrade?

如果您只想检测是否已安装该应用程序,请使用OnlyDetect属性(Rob's answer有此用例)。

如果您确实尝试升级产品,官方WiX documentation会说明最简单的方法。