2015-04-07 63 views
4

我們試圖通過我們的WiX安裝程序獲得一個自定義.NET引導程序來選擇性地在MSI程序包中安裝功能。WiX .NET引導程序 - 功能選擇

已註冊活動PlanMsiFeature,我們認爲我們可以訪問MSI中的功能並根據預設條件排除某些功能。然而,事件似乎從未被調用過。有沒有人成功地使用這個事件?

非常感謝。

回答

7

我們解決了這個問題。有幾個重要項目不見了。

1)在包含我們的應用程序的Bundle中,MSI包需要以下屬性。

EnableFeatureSelection="yes" 

2)在管理引導器應用我們設定的安裝狀態(狀態),以缺席,我們不希望安裝的功能。這裏缺失的部分是我們希望安裝的所有項目都需要將它們的狀態設置爲「未知」纔會導致安裝所有項目。

void CustomBA_PlanMsiFeature(object sender, PlanMsiFeatureEventArgs e) 
{ 
    if (e.FeatureId == "FEATURE_TO_EXCLUDE") 
     e.State = m_installFeature ? FeatureState.Local : FeatureState.Absent; 
    else 
     e.State = FeatureState.Local; 
}