WiX .NET引导程序——功能选择

6
我们正在尝试通过我们的WiX安装程序使用自定义.NET Bootstrapper来有选择地安装MSI包中的功能。
我们注册了PlanMsiFeature事件,以为我们能够访问MSI中的功能,并根据预设条件排除某些功能。但是,该事件似乎从未被调用。有人成功地使用过这个事件吗?
非常感谢。
1个回答

9
我们解决了这个问题。有几个关键项目缺失。
1)在包含我们应用程序的捆绑包中,MSI安装包需要以下属性。
EnableFeatureSelection="yes"

2) 在托管的引导应用程序中,我们将不希望安装的功能的安装条件(状态)设置为Absent。缺失的一点是,我们希望安装的所有项目都需要将其状态设置为Local,因为未知状态会导致所有项目都被安装。

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;
}

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接