2016-08-13 8 views
0

J'ai un ensemble Wix qui contient plusieurs packages. Quelques paquets sont mutuellement exclusifs. Je veux dire par là qu'ils sont tous les deux inclus car il faut les installer sur des machines 32 bits, l'autre sur des machines 64 bits. Pour résoudre ce problème, j'ai défini un groupe de paquets comme ceci:Obtention d'un package InstallCondition dans l'application Bootstrapper managée Wix

<Fragment> 
    <PackageGroup Id="Drivers"> 
    <MsiPackage Id="Driversx64" InstallCondition="VersionNT64" SourceFile="SRC\drivers64.msi" DisplayInternalUI="no" Visible="no" ForcePerMachine="yes" EnableFeatureSelection="yes"/> 
    <MsiPackage Id="Driversx86" InstallCondition="NOT VersionNT64" SourceFile=".SRC\drivers32.msi" DisplayInternalUI="no" Visible="no" ForcePerMachine="yes" EnableFeatureSelection="yes"/> 
    </PackageGroup> 
</Fragment> 

Et puis, dans la chaîne I comprennent seulement les <PackageGroupRef Id="Drivers"/>

Les choses fonctionnent comme prévu en ce que le moteur prévoit correctement l'installation en fonction le système d'exploitation.

Le problème que je vais avoir est que je veux afficher une liste des paquets qui seront installés et je voudrais:

  • déterminer à partir du programme d'amorçage personnalisé si un paquet est censé être visible au interface utilisateur ou non, et peut-être son niveau
  • déterminer à partir du programme d'amorçage personnalisé si la InstallCondition d'un paquet évalue à vrai faux

la ligne de fond bien est que je veux vous assurer que mon BA personnalisé peut obéir à ce qui est déclaré dans le faisceau comme quels sont les paquets autorisés à être installés sur le système cible.

Répondre

2

Lors de l'exécution, il y aura un fichier appelé BootstrapperApplicationData.xml. Ce fichier contiendra des informations sur chaque paquet, y compris InstallCondition (je ne sais pas quand il a été ajouté, peut nécessiter la version 3.10.3). Vous serez en mesure de transmettre la valeur de chaque condition à la méthode EvaluateCondition du moteur pour déterminer si elle est vraie ou fausse.

+0

merci - J'étais sur 3.10.2 donc je vais passer à la version 3.10.3 et voir si je peux obtenir cet attribut pour apparaître. –

+0

J'ai mis à jour et analysé les conditions d'installation comme vous le recommandiez, puis j'ai testé EvaluateCondition et cela a fonctionné - merci! –