使用WIX,我需要創建一個適用於32位和 64位機器的msi或exe依賴於系統。針對32位和64位的單個msi取決於目標機器
回答
您不能,因爲MSI格式要求您指定處理器體系結構。因此,您必須創建兩個獨立的.msi文件,但您至少可以從Wix中的相同項目文件生成它們,這樣可以避免一些重複的工作。
我用這個:
<?if $(var.Platform) = x64 ?>
<?define ProductName = "InsomniacGeek: Windows Setup Test (64 bit)" ?>
<?define Win64 = "yes" ?>
<?define PlatformProgramFilesFolder = "ProgramFiles64Folder" ?>
<?else ?>
<?define ProductName = "InsomniacGeek: Windows Setup Test" ?>
<?define Win64 = "no" ?>
<?define PlatformProgramFilesFolder = "ProgramFilesFolder" ?>
<?endif ?>
<Package InstallerVersion="200" Compressed="yes" InstallScope="perMachine" Platform="$(var.Platform)"/>
那麼你就必須建立項目並創建一個32位MSI和64位的微星。
使用刻錄您可以創建引導程序來檢查操作系統並安裝相應的msi。 – BryanJ 2013-02-25 13:23:27
Platform =「$(var.Platform)」,顯示該軟件包支持的平臺。不鼓勵使用這個屬性;相反,請在candle.exe命令行中指定-arch開關,或者在.wixproj MSBuild項目中指定InstallerPlatform屬性。 – 2013-02-27 01:39:40
由於文本$(var.Platform)不是用於WiX源文件的XML架構中定義的平臺枚舉值之一,因此我只在Votive中得到一條扭曲的線條和警告。一旦預處理器完成文件,屬性的值是有效的,蠟燭將愉快地接受它。你使用的是什麼版本的Wix? – 2013-02-27 09:14:08
- 1. 從一個VS安裝項目在64位機器上部署32位和64位COM對象MSI
- 2. 針對32位和64位與Visual Studio在同一解決方案/項目
- 3. 單一32位MSI以32/64位驅動
- 4. 在32位和64位機器中總是長64位
- 5. 如何從32位機器發佈到64位目標?
- 6. 使用ClickOnce部署識別目標機器(32位或64位)
- 7. 。用於32位和64位機器的刷新文件路徑
- 8. 32位和64位安裝項目
- 9. 包括標頭OpenCL(32位和64位)
- 10. 用於軟件開發的32位與64位機器問題
- 11. 32位和64位CPU/OS
- 12. C# - 在32位和64位
- 13. 64位debian和32位酒
- 14. 32位和64位性能
- 15. 32位指針在64位Solaris編譯
- 16. MinGW GCC - 單個32位和64位交叉編譯器?
- 17. 運行CTS僅適用於64位目標,不適用於32位目標
- 18. 防止在64位機器上運行32位安裝項目
- 19. 32位MSI:將64位應用程序的快捷方式目標路徑轉換爲32位路徑
- 20. 針對64位VM實例的64位系統上的32位VMWare
- 21. libstdC++在同一臺機器上的64位和32位版本
- 22. 針對64位
- 23. 使用32位或64位特定的DLL取決於進程位
- 24. 單個MSI安裝正確的32位或64位C#應用程序
- 25. 部署32位或64位ELMAH與網站取決於服務器
- 26. 64位項目中的32位.obj
- 27. 在32位和64位機器上建立參考路徑不同的項目
- 28. 針對ARM/NEON的64位/ 32位除法算法更快?
- 29. 對於用Excel和C#(32位/ 64位窗口)
- 30. XOR高32位,低32位,64位數
如果你創建一個32位的軟件包,它也可以在64位配置下正常工作。 – RinoTom 2013-02-25 19:59:47