【问题标题】:Installing components at 32 & 64 bit platforms在 32 位和 64 位平台上安装组件
【发布时间】:2014-03-10 21:32:33
【问题描述】:

我有一个基于 WiX 的安装程序的大型项目。它只有 32 位。 我可以在 32 位和 64 位上安装它。 唯一的问题是,在 Wow6432Node 的注册表中有几个 64 位值(通常没问题),但我需要替换 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 位)的情况下做到这一点?

【问题讨论】:

    标签: windows wix 32bit-64bit


    【解决方案1】:

    通过 32 位安装程序或应用程序,您根本无法轻松访问 64 位注册表。如32-bit and 64-bit Application Data in the Registry 中所述,系统只是通过反射隐藏它们。然而,有一种技术可以解决这个问题。这在How to access the “real” x64 registry from a Win32 .NET Application 中有描述。请查看名为 How do I use this in Managed code? 的部分了解相关信息。然后编写一个托管自定义操作来为您执行此操作。就我个人而言,我没有尝试过这个解决方案,但在我看来它应该可以工作。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2016-11-30
      • 1970-01-01
      • 2014-03-14
      • 2012-03-19
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多