2010-01-06 94 views
5

上的注册表项在64位平台上禁用注册表重定向,安装,检查失败的SQL Reporting Services的和加载项。安装程序正在检查路径“HKEY_LOCAL_MACHINE \ Software \ Microsoft \ Microsoft SQL Server \ Instance Names”下的注册表项,并且注册表项可用,但由于MS SQL Server是64位应用程序,因此安装程序会重定向到路径“HKEY_LOCAL_MACHINE \ Software \ WOW6432node \ Microsoft \ Microsoft SQL Server \ Instance Names”,并且没有相同的条目。所以安装检查失败。对于x64平台

解决方法:我已经通过在“HKEY_LOCAL_MACHINE \ Software \ WOW6432node \ Microsoft \ Microsoft SQL Server \ Instance Names \ RS”下手动创建条目对其进行了测试,之后安装检查成功。

总之,在x64平台上,安装检查是指从WOW6432node注册表项,而不是64位的。

所以,我怎么能强迫我的32位安装程序来访问64位登记正确安装检查?

我试图RegDisableReflectionKey和相关功能作为注册表重定向的替代,但它并没有在我结束工作。

我该如何解决这个问题?

+0

可能相关:* [在WiX中禁用注册表重定向](http://stackoverflow.com/questions/5947372)* – 2015-08-11 11:52:04

+0

和* [为什么Windows Vista x64上的x86 WiX安装程序无法在注册表中向Wow6432Node写入密钥?](http://stackoverflow.com/questions/2933602)* – 2015-08-11 12:01:26

回答

6

微软已经公布了包括KEY_WOW64_64KEY对RegOpenKeyEx的描述上Registry Reflection信息。

+0

谢谢。现在这里是WIX的另一个问题:通过WIX,当我通过访问注册表项来获取64位组件的安装路径时,由于注册表重定向,它被重定向到WOW6432node,其中注册表项不存在。因此,通过WIX,是否有任何方法只通过单一MSI创建来查看64位注册表视图? 据我所知,组件必须标记为Win64 =“yes”,以便使注册表项在64位注册表配置单元而不是WOW64注册表配置单元下编写。 其他建议? – user223572 2010-01-13 09:17:02

3

权。访问备用注册表视图是答案。那么这不会禁用注册表重定向,但有助于正确安装检查。

我已经在安装程序中处理了这个问题,通过强制它在对64位组件进行安装检查时强制它查看64位注册表视图。

相关问题