使用在Wix中创建的x86 mai包写入注册表的x64部分

A.G*_*ame 5 registry wix windows-7-x64 wix3.5

我正在使用Wix为产品编写安装包,整个过程是在x86中,但现在我需要在注册表的x64部分添加一个密钥.我环顾四周,发现这个堆栈的答案我认为可以解决我的问题.但我收到ICE80错误(不是警告),它告诉我我基本上需要将我的Package Platform属性更改为x64.

但我宁愿避免这种情况,因为正如我所提到的那样,只有一个注册表项需要在x64中.

所以我的问题是:是否有另一种解决ICE80错误的方法,或者我需要构建两个msi包,一个用于x86,另一个用于x64.

以下是我的一些代码,以进一步说明我正在尝试做的事情:

        <Component Id="Foo" Guid="{GUID}" Win64="yes">
    <RegistryKey Root="HKLM" Key="Software\Microsoft\Windows NT\CurrentVersion\Terminal Server\Compatibility\IniFiles">
      <RegistryValue Type="integer" Name="Hello" Value="1"/>
    </RegistryKey>
    <Condition><![CDATA[VersionNT64]]></Condition>
  </Component>

  <Component Id="Bar" Guid="{GUID}">
    <RegistryKey Root="HKLM" Key="Software\Microsoft\Windows NT\CurrentVersion\Terminal Server\Compatibility\IniFiles">
      <RegistryValue Type="integer" Name="Hello" Value="1"/>
    </RegistryKey>
  </Component>
Run Code Online (Sandbox Code Playgroud)

任何帮助表示赞赏!

Bob*_*son 6

Windows Installer不支持写入64位注册表(或文件系统)的32位程序包.64位软件包可以写入32位和64位部分.