How to detect if app is installed based on upgrade code

Dusan Plavak picture Dusan Plavak · Sep 28, 2013 · Viewed 8.5k times · Source

I am doing an installation of several products, but because they are built automatically in daily build, they have various GUIDs. They just have same UPGRADE code...

So my question is: Is it possible to know just with UPGRADE code if the product is installed (without using own custom actions)?

I was trying:

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

But it seems that I cannot use that... Also I find a registry record:

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

where XXXXXXX is transformed UPGRADE Code, but there are no values under this key so I cannot check for its existence :(

Any help will be appreciated.

EDIT: I am trying to discover if some other product is installed, not that one what I am currently installing.

Answer

Dave Andersen picture Dave Andersen · Sep 30, 2013

You do this using the Upgrade element. See this question: How to implement WiX installer upgrade?

If you only want to detect whether the application is already installed, use the OnlyDetect attribute (Rob's answer has an example of this use).

If you are actually trying to perform an upgrade of your product, the official WiX documentation describes the easiest way to do this.