由於用戶混淆,我們的應用程序需要單獨安裝32位和64位版本的Windows。雖然32位安裝程序在win64上運行良好,但它有可能造成支持頭痛,我們希望防止這種情況發生。WiX:阻止32位安裝程序在64位Windows上運行
我想阻止32位MSI安裝程序在64位Windows機器上運行。爲此,我有以下條件:
<Condition Message="You are attempting to run the 32-bit installer on a 64-bit version of Windows.">
<![CDATA[Msix64 AND (NOT Win64)]]>
</Condition>
有了這樣定義的Win64中:
<?if $(var.Platform) = "x64"?>
<?define PlatformString = "64-bit"?>
<?define Win64 ?>
<?else?>
<?define PlatformString = "32-bit"?>
<?endif?>
事情是,我不能讓這個檢查工作的權利。要麼它一直在燃燒,要麼在任何時候都燃燒。我們的目標是檢查運行時msix64
變量與編譯時Win64
變量的存在性,如果這些變量不對齊,則會拋出一個錯誤,但邏輯不能正常工作。有沒有人想出更好的解決方案?
這最終導致了詭計。我的錯誤是讓'Condition'的邏輯倒退。 – 2010-04-06 01:18:13
Msix64需要默認情況下不在XP上的Windows Installer 3.1(請參閱http://msdn.microsoft.com/zh-cn/library/aa370522(v=VS.85).aspx) – 2011-07-21 19:52:36