簡體   English   中英

為x86和x64體系結構注冊.msi(安裝項目)

[英]Register .msi (setup project) for both x86 and x64 architectures

我正在為生物識別捕獲應用程序建立一個安裝項目。

問題是,要使其在用戶PC上正常工作,我需要在Regedit中注冊.exe路徑。

我已經將目標鎖定在“ Program Files(x86)”文件夾中,如下所示,但是在32位PC中它不存在,因此該應用程序將無法啟動。

在此處輸入圖片說明

如何使它適用於32位和64位體系結構?

MSI安裝不需要可執行文件注冊。

它只能將與應用程序刪除等相關的信息放入Windows注冊表中。

默認情況下,MSI安裝程序會將所有文件放入單個根文件夾(例如,MS Office將放入“ C:\\ Program Files \\ Office”或類似文件)。 要配置目標安裝文件夾,請使用TARGETDIR屬性

TARGETDIR屬性是在安裝過程中計算的(此外,它可以被用戶覆蓋)。 默認屬性“ [ProgramFilesFolder]”是x86位置,但是隨處可見。 屬性“ [ProgramFiles64Folder]”是您所需要的,但是它僅存在於x64 OS上。

因此,您需要什么:

  • 查找將修補TARGETDIR的操作/步驟
  • 如果存在,請在使用“ ProgramFiles64Folder”之前添加操作/步驟

這個答案可能可以幫助您舉例。

完成上述步驟后,應用程序將為x86 / x64操作系統選擇普通的Program Files文件夾。

有兩件事:

  1. 單獨的體系結構需要單獨的MSI: https//blogs.msdn.microsoft.com/heaths/2008/01/15/different-packages-are-required-for-different-processor-architectures/

因此,如果您確實需要兩個不同的版本,一個使用您的64位代碼,另一個使用您的32位代碼,那么您需要使用Visual Studio安裝項目設置進行單獨的MSI構建。 32位的一個主文件夾在“應用程序文件夾”目錄的屬性中為ProgramFilesFolder,而64位的一個主文件夾將使用ProgramFiles64Folder。

  1. 在這兩種情況下,您都需要的注冊表項為[TARGETDIR] Your.exe,並且這兩種方法都可以正常工作,這是基於TARGETDIR是這兩種情況下的文件夾名稱,而您的可執行文件不在子文件夾中。

暫無
暫無

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

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