2014-02-12 111 views
0

我有一个基于WiX的安装程序的大型项目。它只有32位。 我可以在32位和64位安装它。 唯一的问题是,在64位有几个值在Wow6432Node注册(通常是好的),但我需要替换HKLM/SOFTWARE /微软/ Windows NT中的一些值在32位和64位平台上安装组件

我这样做是这样的:

<Component Id="..." Guid="..." 
     Transitive="yes" Win64="yes"> 
     <Registry Id="..." 
     Root="HKLM" Key="SOFTWARE\Microsoft\Windows NT\CurrentVersion\..." 
     Name="..." Type="string" Value="..." /> 
</Component> 

但它不适用于在32位系统中安装。我怎样才能创建2个版本(32位和64位)?

回答

0

从32位安装程序或应用程序,您根本无法轻松访问64位注册表。系统只需按照32-bit and 64-bit Application Data in the Registry中所述的反射隐藏它们。然而,有一种技术如何解决这个问题。这在How to access the “real” x64 registry from a Win32 .NET Application中描述。请检查名为的部分如何在托管代码中使用它?得到的想法。然后编写一个托管自定义操作,将为您执行此操作。就我个人而言,我没有尝试这种解决方案,但在我看来,它应该工作。

相关问题