[英]Installer which chooses the MSI based on the CPU architecture (x86 32-bit, x64 64-bit, etc)
我有一個安裝程序(Visual Studio安裝項目),它使用DIFxApp和Orca轉換來安裝驅動程序 。 問題是有兩個DIFxApp合並模塊 - 一個用於x86,另一個用於x64。 如果我同時引用它們,則安裝僅適用於64位計算機,而僅引用x86版本允許我在32位計算機上安裝。
似乎唯一的解決方案是創建兩個MSI(一個用於x86,一個用於x64),每個都引用正確的合並模塊。 我的問題是我應該如何創建一個安裝程序,根據目標機器的處理器選擇安裝哪個MSI?
我和NSIS一起工作過一段時間,所以走這條路可能最容易。 其他可能性是Inno-Setup和dotNetInstaller 。
類似的問題(但答案不充分):
如果您決定選擇NSIS:
!include "x64.nsh"
${If} ${RunningX64}
MessageBox MB_OK "running on x64"
${Else}
MessageBox MB_OK "running on x86"
${EndIf}
您可以使用自定義操作來檢測操作系統,然后調用正確的安裝程序。
我在這里舉了一個例子: single-msi-to-install-correct-32-or-64-bit-c-application
如何制作一個檢測os類型的小程序(啟動器)(64 0r 32位,應該很容易)。 然后,小程序根據檢測結果啟動正確的安裝程序。 程序不應該有任何窗口,並且與安裝程序具有相同的圖標。 只需向客戶提供所有三個文件,installer.exe(程序),inst32.msi和inst64.msi。 如果這對您的客戶來說太多了,那么只需將它們壓縮為自動解壓zip,即自動啟動installer.exe。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.