安装32和32的组件64位平台

时间:2014-02-12 13:55:13

标签: windows wix 32bit-64bit

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

我这样做:

<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位)的情况下执行此操作?

1 个答案:

答案 0 :(得分: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中有所描述。请查看名为如何在托管代码中使用此功能?的部分来了解相关信息。然后编写一个托管自定义操作,为您执行此操作。就个人而言,我没有尝试过这个解决方案,但在我看来它应该可行。