2012-09-07 36 views
0

我們的產品有連接到SQL,MySql,Oracle的選項&。Wix安裝程序 - 如何動態選擇要在安裝程序中裝運哪些文件?

我想運送連接所需的所有dll,無論成員想要什麼,但這會增加msi的大小。 (使用MS構建)

我可以在WIX​​中有某種類型的組,並且基於參數的運行時選擇哪個dll來運送? 或可能有多個.wxs文件(每個db驅動程序一個文件),運行時決定選擇哪一個?

+1

運行時描述應用程序行爲。生成時間和安裝時間更適用。你要哪個? –

+0

@ChristopherPainter :),對,buildtime是我在找的東西。我們根據每個成員的請求構建安裝程序。 – Baljeetsingh

回答

2

將不同數據提供者的文件組織成不同的功能。然後使用基於變量的預處理器語句來包含或排除構建中的功能。最後將這些變量傳遞給WiX版本進行評估。您還應該提供不同的MSI獨特的ProductName,ProductCode和PackageCode屬性。可能是相同的UpgradeCode。您可能還需要考慮安裝程序中的檢查,以確保一次只安裝一個變體,除非您安裝到不同的目錄並且組件完全按設計進行隔離。

另外,如果三個數據提供者是你唯一的變化點,那麼我想你只有7個變化。您可能需要預先製作這7個內容,然後將內容發佈到您的分銷渠道。

Preprocessor

+0

感謝您的回覆。我認爲只有預處理器才能解決我的問題。在我的wxs中,如果有oracle文件列表,然後是mysql文件列表。如果IncludeOracle = true?>,我能否用<?包裝oracle文件? ,IncludeOracle作爲環境變量......? – Baljeetsingh

+2

查看Feature,FeatureRef,Component,ComponentRef,Directory和DirectoryRef的片段概念和關聯的元素關係。這個想法是你將這些文件組織成一個片段wxs文件,並在Feature元素周圍放置一個if。如果評估結果爲真,則使用該功能,然後將參考鏈全部拖到您的安裝程序中。 –

相關問題