2008-10-29 5 views
28

Cela peut être une question naïve. Je dois éditer manuellement un fichier .WXS pour le faire supporter des caractéristiques choisies de la ligne de commande.WIX: Comment sélectionner des fonctionnalités à partir de la ligne de commande

Par exemple, il existe 3 fonctions dans le fichier .WXS.

<Feature Id="AllFeature" Level='1'> 

    <Feature Id="Feature1" Level='1'> </Feature> 

    <Feature Id="Feature2" Level='1'> </Feature> 

    <Feature Id="Feature3" Level='1'> </Feature> 

</Feature> 

Maintenant, je veux sélectionner les fonctions de ligne de commande. Dites, si je tape "msiexec/i install.msi FEATURE = A", alors "Feature1" et "Feature2" sont installés; si je tape "msiexec/i install.msi FEATURE = B", alors "Feature1" et "Feature3" sont installés. Dans ce cas, "A" correspond aux entités 1 et 2; "B" correspond aux entités 1 et 3.

Comment effectuer cela dans WIX?

Répondre

29

je changerais Feature1, Feature2 et Caractéristique3 aux composants, alors déclarer quelque chose comme ceci:

<Feature Id="FEATUREA" Title="Super" Level="1" > 
    <ComponentRef Id="Component1" /> 
    <ComponentRef Id="Component2" /> 
</Feature> 

<Feature Id="FEATUREB" Title="Super1" Level="1" > 
    <ComponentRef Id="Component1" /> 
    <ComponentRef Id="Component3"/> 
</Feature> 

ensuite installer soit fonctionA ou fonctionB

msiexec /i install.msi ADDLOCAL=[FEATUREA | FEATUREB] 
44

La réponse acceptée mentionne déjà la propriété ADDLOCAL, mais semble impliquer que vous ne pouvez sélectionner qu'une seule fonctionnalité. Vous pouvez réellement sélectionner plusieurs fonctions en les séparant par des virgules comme ceci:

msiexec /i install.msi ADDLOCAL=Feature1,Feature2 

ou

msiexec /i install.msi ADDLOCAL=Feature2,Feature3 

Une autre astuce: vous pouvez découvrir ces noms de fonctions en ouvrant le msi avec orca. Ceci est très utile lorsque vous voulez utiliser ces astuces pour créer un programme d'amorçage qui installe certaines fonctionnalités des paquets msi tiers.

+0

La commande msiexec que j'ai mis était pour la question posée, mais je suis d'accord que vous pouvez avoir plusieurs fonctionnalités de la ligne de commande – CheGueVerra

+0

Merci d'avoir mentionné l'utilitaire Orca. –

+1

Je vais mentionner un meilleur utilitaire: InstEd It (http://www.instedit.com/) qui est gratuit pour les cas d'utilisation les plus courants –

Questions connexes