我们正在尝试通过我们的.NET安装程序获得一个定制的WiX引导程序来选择性地在WiX包中安装特性。
在注册了事件PlanMsiFeature之后,我们认为我们可以访问MSI中的功能,并根据预设的条件排除某些特性。然而,该事件似乎从未被调用。有人成功地使用了这个事件吗?
非常感谢。
发布于 2015-04-15 07:11:47
我们解决了这个问题。有几个关键的东西不见了。
1)在包含我们的应用程序的Bundle中,需要MSI包具有以下属性。
EnableFeatureSelection="yes"2)在托管引导程序中,对于我们不希望安装的特性,我们将安装条件(state)设置为缺席。这里缺少的部分是,我们希望安装的所有项目都需要为它们的状态设置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;
}https://stackoverflow.com/questions/29486141
复制相似问题