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