2015-04-07 3 views
4

Nous essayons d'obtenir un Bootstrapper .NET personnalisé pour installer de manière sélective des fonctionnalités dans un paquet MSI via notre installateur WiX. Ayant enregistré à l'événement PlanMsiFeature nous avons pensé que nous pourrions accéder aux dispositifs dans notre MSI et exclure certaines caractéristiques basées sur des conditions préréglées. L'événement, cependant, ne semble jamais être invoqué. Est-ce que quelqu'un a réussi à utiliser cet événement avec succès?WiX .NET Bootstrapper - Sélection des fonctionnalités

Merci beaucoup.

Répondre

7

Nous avons résolu ce problème. Il y avait quelques éléments clés manquants.

1) Dans l'ensemble qui contient notre application, l'attribut suivant était requis pour le groupe MSI.

EnableFeatureSelection="yes" 

2) Dans l'application bootstrapper géré nous avons été mise en état de l'installation (état) à Absent pour la fonction que nous ne voulons pas installer. La pièce manquante ici était que tous les éléments que nous souhaitons installer doivent avoir un ensemble local pour leur état Inconnu entraîne l'installation de tous les éléments.

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