WiX .NET 引导程序 - 功能选择
WiX .NET Bootstrapper - Feature Selection
我们正在尝试获取自定义 .NET 引导程序,以通过我们的 WiX 安装程序在 MSI 包中选择性地安装功能。
注册到事件 PlanMsiFeature 后,我们认为我们可以访问 MSI 中的功能并根据预设条件排除某些功能。然而,该事件似乎从未被调用过。有人成功使用过这个活动吗?
非常感谢。
我们解决了这个问题。缺少几个关键项目。
1) 在包含我们应用程序的 Bundle 中,MSI 包需要以下属性。
EnableFeatureSelection="yes"
2) 在托管引导程序应用程序中,我们将安装条件(状态)设置为 Absent,用于我们不希望安装的功能。这里缺少的部分是我们希望安装的所有项目都需要为其状态设置本地,因为未知会导致安装所有项目。
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;
}
我们正在尝试获取自定义 .NET 引导程序,以通过我们的 WiX 安装程序在 MSI 包中选择性地安装功能。
注册到事件 PlanMsiFeature 后,我们认为我们可以访问 MSI 中的功能并根据预设条件排除某些功能。然而,该事件似乎从未被调用过。有人成功使用过这个活动吗?
非常感谢。
我们解决了这个问题。缺少几个关键项目。
1) 在包含我们应用程序的 Bundle 中,MSI 包需要以下属性。
EnableFeatureSelection="yes"
2) 在托管引导程序应用程序中,我们将安装条件(状态)设置为 Absent,用于我们不希望安装的功能。这里缺少的部分是我们希望安装的所有项目都需要为其状态设置本地,因为未知会导致安装所有项目。
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;
}