Comment sélectionner les fonctionnalités à partir de la ligne de commande
-
05-07-2019 - |
Question
Cela pourrait être une question naïve. Je dois modifier manuellement un fichier .WXS pour le rendre compatible avec la sélection de fonctionnalités à partir de la ligne de commande.
Par exemple, le fichier .WXS contient 3 fonctionnalités.
<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 des fonctionnalités à partir de la ligne de commande. Dites, si je tape "msiexec / i install.msi FEATURE = A", puis "Feature1" et " Feature2 " est installé; Si je tape "msiexec / i install.msi FEATURE = B", alors "Feature1". et " Feature3 " est installé. Dans ce cas, " A " mappe aux entités 1 et 2; " B " mappe sur les entités 1 et 3.
Comment accomplir cela dans WIX?
La solution
Je changerais Feature1, Feature2 et Feature3 en composants, puis déclarerais 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 FeatureA ou FeatureB
msiexec /i install.msi ADDLOCAL=[FEATUREA | FEATUREB]
Autres conseils
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 en fait sélectionner plusieurs fonctionnalités en les séparant par des virgules, comme suit:
msiexec /i install.msi ADDLOCAL=Feature1,Feature2
ou
msiexec /i install.msi ADDLOCAL=Feature2,Feature3
Autre astuce: vous pouvez découvrir ces noms de fonctions en ouvrant le msi à l'aide de orca . Ceci est très utile lorsque vous souhaitez utiliser ces astuces pour créer un programme d’amorçage qui installe certaines fonctionnalités des packages tierces msi.
Un certain nombre de propriétés peuvent contrôler les états d'installation des fonctionnalités. Consultez cette documentation MSI SDK et ses liens: http: //msdn.microsoft.com/en-us/library/aa367536(VS.85).aspx