2017-08-08 7 views
0

J'avais déjà utilisé NSIS pour faire l'installateur de mes produits, mais j'ai été informé que Wix est beaucoup plus propre et plus flexible.Comment choisir d'installer (ou non) certaines fonctionnalités en utilisant Wix Installer?

Je suis par contre confronté à un problème, car pendant l'installation, l'utilisateur peut décider d'installer ou non MySql.

Comment est-ce que je peux régler ceci?

J'utilise un bootstrapper, qui appelle le paquet MSI principal (avec mon produit et une boîte de dialogue à configurer, et là l'utilisateur peut installer ou non MySql). Dans le même programme d'amorçage, j'ai l'appel de l'installateur MySql. Comment puis-je installer uniquement en cas de besoin?

Expliquer ma structure de fichiers: J'ai un fragment MySql.wxs, et un PackageGroupRef dans le Bundle.wxs avec le programme d'amorçage.

Répondre

0

Dans les applications Bootstrapper managées WiX, vous pouvez définir ceci dans l'événement PlanPackageBegin.

BootstrapperApplication.PlanPackageBegin += PlanPackageBeginExecute; 

private void PlanPackageBeginExecute(object sender, PlanPackageBeginEventArgs e) 
{ 
    if(e.PackageId == "your package ID") 
    { 
     e.State = RequestState.None; 
    } 
} 

La définition de PackageState sur NONE ignore l'installation de Package.

+0

Je dois le faire dans le code? Puis-je définir une balise dans le package à partir du fichier .wsx pour le faire fonctionner? L'utilisation de tout code C# n'est pas vraiment une solution (du point de vue de mon ScrumMaster), mais je le ferai si vous me dites que vous ne connaissez pas d'autre solution. Merci à partir de maintenant :) –

+0

Je ne sais pas si cela peut être fait dans un fichier. –

+0

Okay Où dois-je insérer ce code? Besoin de compiler sur un .dll? WiX a un tag (comme html doit php) pour exécuter du code à partir du fichier wxs? –