conditions CA pendant REINSTALL
-
26-10-2019 - |
Question
J'ai une action personnalisée qui doit être exécutée si l'état d'action de fonction spesial est « installer ». Maintenant, je suis en utilisant la condition suivante:
(&ca_feature=3 AND NOT &ca_feature=2) OR (!ca_feature=3 AND PATCH) .
Je veux exécuter aussi en mode Modifier. Lorsque la fonction est déjà installé et l'utilisateur ne veut pas le supprimer. Je thaught pour ajouter OR (REINSTALL><ca_feature OR REINSTALL=ALL)
à ma chaîne de condition. mais il semble ne fonctionne pas .. Je ne peux pas comment le MSI travaille dans certaines situations, c'est mon problème. mais je peux pas trouver la réponse dans Internet.
S'il vous plaît, dites-moi ce que I'Am faire / mauvaise compréhension? Merci à l'avance
La solution
La condition correctement regarde. La dernière partie avec REINSTALL
serait vrai si votre fonction doit être réinstallé.
Bien que vous pouvez essayer d'utiliser !ca_feature=3
au lieu de REINSTALL><ca_feature
:. Qui irait à l'AC lorsque la fonction est installée
Je pense que votre état pourrait regarder cette façon:
(&ca_feature=3) OR (!ca_feature=3 AND NOT (REMOVE><ca_feature OR REMOVE=ALL))
Il serait chargé du CA lorsque cette fonction est prévue pour l'installation, ou si elle est installée et n'est pas prévu pour supprimer.
Cette AND NOT &ca_feature=2
partie dans la première parenthèse est redondante parce &ca_feature
ne peut être égal à 2 si elle est égale à 3 déjà.
Utilisez MSI pour une journalisation mieux comprendre ce qui se passe. Exécutez l'installation de cette façon:
msiexec /i package.msi /l*vx log.txt
Quand un état de fonction change ou une propriété est modifiée, vous verrez un message dans le journal. Ensuite, vous serez en mesure de comparer les valeurs réelles avec vos attentes. Utiliser une autre opération des interrupteurs au lieu de l'exécuter /i
en modifier ou en mode de suppression.