[wix-users] Obtaining version for already installed 3rd party program

Bevan Weiss bevan.weiss at gmail.com
Wed Mar 21 03:16:38 PDT 2018

Unfortunately no bootstrapper at this stage, and I wouldn't really want to
get into the extra complexity of that just yet.
I do indeed have:
      <FindRelatedProducts Before="AppSearch" />

And ClearSCADA is indeed only x64, so no worries about x86 issues here.
It's just not returning the version number at this stage.
I'm not even seeing a 'PROPERTY CHANGE: ' entry in the log for this

I get this:
MSI (c) (30:9C) [21:03:32:027]: PROPERTY CHANGE: Adding CLEARSCADADETECTED
property. Its value is '{2ACE38B2-F142-4EFE-9AC7-B25514E4930E}'.
Action ended 21:03:32: FindRelatedProducts. Return value 1.
MSI (c) (30:9C) [21:03:32:058]: Doing action: AppSearch
MSI (c) (30:9C) [21:03:32:058]: Note: 1: 2205 2:  3: ActionText
Action 21:03:32: AppSearch. Searching for installed applications
Action start 21:03:32: AppSearch.
AppSearch: Property: INSTALLFOLDER, Signature: InstallLocRegistrySearch
MSI (c) (30:9C) [21:03:32:058]: Note: 1: 2262 2: Signature 3: -2147287038
MSI (c) (30:9C) [21:03:32:058]: PROPERTY CHANGE: Adding INSTALLFOLDER
property. Its value is 'C:\Program Files\Schneider Electric\ClearSCADA\'.
AppSearch: Property: LOGFOLDER, Signature: LogLocRegistrySearch
MSI (c) (30:9C) [21:03:32:058]: Note: 1: 2262 2: Signature 3: -2147287038
AppSearch: Property: CLEARSCADA_VER, Signature: ClearSCADAVersionSearch
MSI (c) (30:9C) [21:03:32:058]: Note: 1: 2262 2: Signature 3: -2147287038
Action ended 21:03:32: AppSearch. Return value 1.
MSI (c) (30:9C) [21:03:32:058]: Doing action: LaunchConditions
MSI (c) (30:9C) [21:03:32:058]: Note: 1: 2205 2:  3: ActionText

So it seems that it's successfully done my hardcoded registry search for
the INSTALLFOLDER (which is looking at a different registry path
(HKEY_LOCAL_MACHINE\SOFTWARE\Schneider Electric\ClearSCADA at InstallLocation).
But it hasn't done the PROPERTY CHANGE for the CLEARSCADA_VER, so I presume
that something hasn't worked with the RegistrySearch here?

The XSLT for the conditioning of generated components appears to be done,
the generated wxs files look good.
Which does just mean that somehow I need to reference in the various Heat
generated fragments (in the heat WXS files), the Fragments are currently
getting discarded because a FeatureRef in the Fragment is not 'binding'
enough for the objects to be linked into the installer it seems.
Is there a way to get Fragments included into the installer by only adding
something to the Fragment itself (i.e. without having to modify something
else to point back into that Fragment)?

Thanks for the quick reply, and assistance, thus far :)

Bevan Weiss

On 21 March 2018 at 20:33, Nir Bar via wix-users <
wix-users at lists.wixtoolset.org> wrote:

> If you have a WiX bootstrapper you can find the ClearSCADA version using
> util:ProductSearch.
> For MSI-only, the approach seems good. Just make sure that
> FindRelatedProducts is scheduled before AppSearch and the ClearSCADA is a
> x64-only product. You may need to duplicate the RegistrySearch for x86 as
> well.
> As for the dynamically created components-you can try one of these:
> - Use XSLT to add a condition on all generated components.
> - Create separate feature for each ClearSCADA version and condition the
> feature level with the detected version
> You can nest ComponentGroupRef under a ComponentGroup but not under
> ComponentGroupRef
> --
> Nir Bar, Independent WiX Expert. Creator of-
> JetBA: WiX WPF Bootstrapper User Interface Framework
> JetBA++: WiX Native Bootstrapper User Interface Framework
> ____________________________________________________________________
> WiX Toolset Users Mailing List provided by FireGiant
> http://www.firegiant.com/

More information about the wix-users mailing list