簡體   English   中英

WiX,有條件地基於OS安裝文件

[英]WiX, Conditionally installing a file based on OS

在我的WiX項目中,我需要根據操作系統為同一文件名安裝不同的內容。

  • 如果操作系統是Windows 7,則文件需要具有內容X。
  • 如果操作系統是Windows Vista,則文件的內容必須為Y。

我已經考慮了幾種方法:

  1. 定義兩個組件,一個包含Windows 7的內容,另一個包含Vista的內容。 如果操作系統是Windows 7,則基於操作系統運行自定義操作,該操作會覆蓋Vista的內容。

  2. 定義兩個附加功能(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.

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