簡體   English   中英

使用在Wix中創建的x86 mai包寫入注冊表的x64部分

[英]Writing in the x64 part of the registry with an otherwise x86 mai pack created in Wix

我正在使用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>

任何幫助表示贊賞!

Windows Installer不支持寫入64位注冊表(或文件系統)的32位程序包。 64位軟件包可以寫入32位和64位部分。

也許它當時沒有用。 我正在使用Wix v10和我的x86 WIX項目,並添加Win64="yes"最初生成ICE80錯誤。 一旦我壓制了該警告(在Visual Studio中,“工具設置” - >“禁止特定驗證:”列),我就不再收到該錯誤。 當我在Windows 2012 R2上運行x86安裝程序時,會創建這些x64 reg密鑰。

Win64="yes"添加到要放入注冊表中64位的注冊表項中。:)我沒有將條件包含在我自己的內容中,它只與Win64屬性完美配合。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM