![](/img/trans.png)
[英]How do I conditionally install a file with WiX based on the target machine (32bit or 64bit)?
[英]WiX, Conditionally installing a file based on OS
在我的WiX項目中,我需要根據操作系統為同一文件名安裝不同的內容。
我已經考慮了幾種方法:
定義兩個組件,一個包含Windows 7的內容,另一個包含Vista的內容。 如果操作系統是Windows 7,則基於操作系統運行自定義操作,該操作會覆蓋Vista的內容。
定義兩個附加功能(window7配置和win vista配置),使這些組件針對同一文件,並根據操作系統有條件地安裝該功能。
這是最好的方法。 有任何提示,技巧和示例技巧可以使這種情況繼續下去嗎?
我將對#1做一個稍微修改的版本。 有兩個組成部分。 一種適合在Vista上安裝。 另一個條件是要在Win7上安裝。 然后,我將在適當的組件中包含適當的文件。 無需CustomAction。 應不惜一切代價避免使用CustomAction,請參閱: http : //robmensching.com/blog/archive/2007/08/17/Zataoca-Custom-actions-are-generally-an-admission-of-failure.aspx
PS:標記組件透明,以便在操作系統升級中安裝正確的內容。
另一種解決方案是安裝兩個文件,並在運行時從正確的文件中讀取應用程序。 如果該文件稍后可能會被您的應用程序修改,則您可能不想直接安裝它,而是安裝一個“默認”文件,如果“每個用戶”文件不存在,則會讀取該文件。 在這種情況下,當“每個用戶”文件不存在時,請讀取相應的操作系統全局默認值,然后在首次運行時(或在不存在特定文件時)將其寫到“每個用戶”文件中。
有時,在最初的應用程序設計中有意義的東西最終並沒有轉化為“好的” Windows Installer結果,您需要修改一些內容:)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.