Comment sélectionner les fonctionnalités à partir de la ligne de commande

StackOverflow https://stackoverflow.com/questions/246329

  •  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?

Était-ce utile?

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

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top