在 x64 平台上禁用注册表项的注册表重定向 [英] Disabling registry redirection for a registry key on an x64 platform
问题描述
在 64 位平台上,SQL Reporting Services 和加载项的安装检查失败.安装程序正在检查路径HKEY_LOCAL_MACHINESoftwareMicrosoftMicrosoft SQL ServerInstance Names"下的注册表项,并且注册表项在那里可用,但由于 MS SQL Server 是 64 位应用程序,因此,安装程序被重定向到路径HKEY_LOCAL_MACHINESoftwareWOW6432nodeMicrosoftMicrosoft SQL ServerInstance Names"并且没有相同的条目.所以安装检查失败.
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_MACHINESoftwareMicrosoftMicrosoft SQL ServerInstance 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_MACHINESoftwareWOW6432nodeMicrosoftMicrosoft SQL ServerInstance Names" and there are no entries for the same. So the install check fails.
解决方法:我已经通过在HKEY_LOCAL_MACHINESoftwareWOW6432nodeMicrosoftMicrosoft SQL ServerInstance NamesRS"下手动创建条目进行了测试,之后安装检查成功.
Workaround: I have tested it with manually creating entries under "HKEY_LOCAL_MACHINESoftwareWOW6432nodeMicrosoftMicrosoft SQL ServerInstance NamesRS" and after that the install check is successful.
简而言之,在 x64 平台上,installed-check 指的是来自 WOW6432node 的注册表项,而不是 64 位的.
In short, on an x64 platform, installed-check is referring registry keys from WOW6432node and not the 64-bit ones.
那么,如何强制我的 32 位安装程序访问 64 位注册表以进行正确的安装检查?
So, how could I force my 32-bit installer to access 64-bit registries for correct installed-check?
我已经尝试过 RegDisableReflectionKey 和相关函数作为注册表重定向的替代方法,但最终没有奏效.
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 已发布有关 注册表反射,其中包括对 KEY_WOW64_64KEY 用于 RegOpenKeyEx.
Microsoft has published information on Registry Reflection which includes a description of the KEY_WOW64_64KEY for RegOpenKeyEx.
这篇关于在 x64 平台上禁用注册表项的注册表重定向的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!