We're trying to do a couple registry searches at the beginning of a
utility installation to check for the existence of our main product so
we can take certain actions. Everything works fine when using the x64
installer on an x64 machine,  but when we try the x86 installer all
the registry checks fail, apparently because it's looking in
"HKEY_LOCAL_MACHINE32" rather than "HKEY_LOCAL_MACHINE". Why is it
trying to use a non-existent root element, and is there any way to
force it to use the right location? This seems like it ought to be a
simple question with an obvious answer, but i can't find a solution in
the mailing list logs or anywhere else with google.

Here's the wix code:

<Property Id="OURPRODUCT_8_0_INSTALLED">
        <RegistrySearch Id="OP80Present" Type="raw" Root="HKLM"
                Key="SOFTWARE\OurCompany\OurProduct\8.0" Name="InstallPath" />
</Property>

<Property Id="OURPRODUCT_8_0_WOW6432_INSTALLED">
        <RegistrySearch Id="OP80Wow6432Present" Type="raw" Root="HKLM"
                Key="SOFTWARE\Wow6432Node\OurCompany\OurProduct\8.0" 
Name="InstallPath" />
</Property>

Here's the log for the (working) x64 version:

AppSearch: Property: OURPRODUCT_8_0_INSTALLED, Signature: OP80Present
MSI (c) (60:C8) [11:22:05:150]: PROPERTY CHANGE:
Adding OURPRODUCT_8_0_INSTALLED property.
Its value is 'C:\Program Files\OurCompany\OurProduct\'.

AppSearch: Property: OURPRODUCT_8_0_WOW6432_INSTALLED, Signature:
OP80Wow6432Present
MSI (c) (60:C8) [11:22:05:150]:
Note: 1: 1402
2: HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\OurCompany\OurProduct\8.0
3: 2

So it found the x64 install but was unable to find the x86 install
(under Wow6432Node) so all is correct.

Here's the x86 install log:

AppSearch: Property: OURPRODUCT_8_0_INSTALLED, Signature: OP80Present
MSI (c) (C0:14) [11:09:07:493]:
Note: 1: 1402
2: HKEY_LOCAL_MACHINE32\SOFTWARE\OurCompany\OurProduct\8.0
3: 2

AppSearch: Property: OURPRODUCT_8_0_WOW6432_INSTALLED, Signature:
OP80Wow6432Present
MSI (c) (C0:14) [11:09:07:493]:
Note: 1: 1402
2: HKEY_LOCAL_MACHINE32\SOFTWARE\Wow6432Node\OurCompany\OurProduct\8.0
3: 2

It's looking under HKEY_LOCAL_MACHINE32, so it doesn't find the
existing x64 install.

Now what's really weird is that if i install the x86 version of the
main product and then try to install the x86 version of the utility it
claims to detect _both_ versions in the registry!

AppSearch: Property: WORKFLOW_8_0_INSTALLED, Signature: OP80Present
MSI (c) (10:78) [11:49:37:228]: PROPERTY CHANGE:
Adding OURPRODUCT_8_0_INSTALLED property.
Its value is 'C:\Program Files (x86)\OurCompany\OurProduct\'.

AppSearch: Property: WORKFLOW_8_0_WOW6432_INSTALLED, Signature:
OP80Wow6432Present
MSI (c) (10:78) [11:49:37:229]: PROPERTY CHANGE:
Adding OURPRODUCT_8_0_WOW6432_INSTALLED property.
Its value is 'C:\Program Files (x86)\OurCompany\OurProduct\'.

I don't care too much about the false positive in this case, i just
really want to fix the false negative in the case of installing x86 on
top of x64.

Thanks for any help!

------------------------------------------------------------------------------
Create and publish websites with WebMatrix
Use the most popular FREE web apps or write code yourself; 
WebMatrix provides all the features you need to develop and 
publish your website. http://p.sf.net/sfu/ms-webmatrix-sf
_______________________________________________
WiX-users mailing list
WiX-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/wix-users

Reply via email to