簡體   English   中英

使安裝程序同時支持64位和32位

[英]Make Installer for Both 64 and 32 bit

我使用WIX為DLL創建MSI安裝程序。

我想制作一個安裝程序,該程序可以在64位平台上和32位平台上安裝該程序。

我必須定義的注冊表項對於32位和64位是不同的。

如果是64位平台,這是我必須創建密鑰的條目:

H_KEY_LOCALMACHINE\Software\Wow6432Node\Sparx Systems\EAAddins\AdminAddins

如果是32位平台,這是我必須在其中創建密鑰的條目:

H_KEY_LOCALMACHINE\Software\Sparx Systems\EAAddins\AdminAddins   

這是在代碼中定義注冊表項的方式:

<Component Id="AdminAddinsRegEntries" Guid="8777A7AB-B147-4850-9F25-65011306E9C6" >
  <RegistryKey Root="HKLM" Key="Software\Wow6432Node\Sparx Systems\EAAddins\AdminAddins" Action="createAndRemoveOnUninstall">
     <RegistryValue Type="string" Value="AdminAddins.MyClass" />
  </RegistryKey>
</Component>

如何添加條件以避免兩個不同的安裝程序?

您只需要制作一個32位安裝程序包。 就這樣。 系統通過注冊表重定向器將為您處理單獨的32/64位注冊表視圖的所有詳細信息。

當將32位軟件包安裝在64位系統上時,將由32位進程處理,並且需要進行注冊表重定向。 重定向器將安排將密鑰寫入注冊表的32位視圖中。

您不應該對Wow6432Node字符串進行硬編碼。 萬一您錯過了這一點,讓我再說一遍。 您不應該對Wow6432Node字符串進行硬編碼。

因此,總結一下:

  1. 制作一個32位的程序包。
  2. 使用Software\\Sparx Systems\\EAAddins\\AdminAddins作為注冊表項。
  3. 讓重定向器處理32/64位注冊表視圖的詳細信息。

暫無
暫無

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

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