Disabling registry redirection for a registry key on an x64 platform
On a 64-bit platform, installed-check fails for SQL Reporting Services and Add-ins. The installer is checking the registry entries under path "HKEY_LOCAL_MACHINE\Software\Microsoft\Microsoft SQL Server\Instance Names" and registry entry is available out there, but since MS SQL Server is a 64-bit application, therefore, the installer is redirected to the path "HKEY_LOCAL_MACHINE\Software\WOW6432node\Microsoft\Microsoft SQL Server\Instance Names" and there are no entries for the same. So the install check fails.
Workaround: I have tested it with manually creating entries under "HKEY_LOCAL_MACHINE\Software\WOW6432node\Mic开发者_开发问答rosoft\Microsoft SQL Server\Instance Names\RS" and after that the install check is successful.
In short, on an x64 platform, installed-check is referring registry keys from WOW6432node and not the 64-bit ones.
So, how could I force my 32-bit installer to access 64-bit registries for correct installed-check?
I have tried RegDisableReflectionKey and related functions as an alternative for registry redirection, but it didn't work at my end.
How can I fix this problem?
Microsoft has published information on Registry Reflection which includes a description of the KEY_WOW64_64KEY for RegOpenKeyEx.
Right. Accessing an alternate registry view is the answer. Well this will not disable the registry redirection but helps in correct install check.
I've handled this issue in the Installer by forcing it to look into 64-bit Registry View when an install check is made for 64-bit component.
精彩评论