WiX: Operatoren für Ausdrücke

Weil ich nun selbst ein paar mal danach suchen musste, will ich hier die verfügbaren Vergleichsoperatoren für die Condition und Publish Tags mal selber aufführen.

WiX: Expressions Logische Operatoren

NOTInvertiert die folgende Bedingung
ANDlogisches Und
ORlogisches Oder
XORexklusives Oder
EQVÄquivalenz ( A<=>B, A genau dann, wenn B)
IMPImplikation (A => B, aus A folgt B)

WiX: Expressions Vergleichsoperatoren

=gleich
<>nicht gleich
>größer als
>=größer als oder gleich
<kleiner als
<=kleiner als oder gleich
~=gleich, ohne Berücksichtigung der Klein-/Großschreibung
~<>nicht gleich, ohne Berücksichtigung der Klein-/Großschreibung
~>größer als, ohne Berücksichtigung der Klein-/Großschreibung
~>=größer als oder gleich, ohne Berücksichtigung der Klein-/Großschreibung
~<kleiner als, ohne Berücksichtigung der Klein-/Großschreibung
~<=kleiner als oder gleich, ohne Berücksichtigung der Klein-/Großschreibung

WiX: Expressions zusätzliche Stringvergleiche

><links enthält rechts, z.B. aber >< be = wahr
<<links startet mit rechts, z.B. aber << ab = wahr
>>links endet mit rechts, z.B. aber>>er = wahr

WiX: Expressions Bitweise Operatoren

><bitweises Und
<<oberen 16 Bit von links sind gleich rechts
>>unteren 16 Bits von links sind gleich rechts

Man sollte die Bedingungen immer in ein <![CDATA[ und ]]> einschließen, weil sonst die < und > als öffnende oder schließende Klammern interpretiert werden könnten.
Man kann natürlich Properties für die Vergleiche verwenden, die werden wie folgt ausgewertet:

  • PROPERTY
    wird zu true ausgewertet, falls die Property überhaupt gesetzt ist, egal wie. Auch wenn die Property selbst auf false steht.
  • NOT PROPERTY
    wird zu true ausgewertet, falls die Property nicht gesetzt ist.
  • PROPERTY = TRUE, PROPERTY = FALSE
    Dies ist der richtige Weg, die Property auf logische Werte zu prüfen.

Wenn man den Properties besondere Zeichen voransetzt, bekommen sie eine besondere Bedeutung:

%Umgebungsvariable (Name ist unabhängig von Groß-/Kleinschreibung)
$Action state der Komponente
?Installiertstatus der Komponente
&Action state des Features
!Installationsstatus des Features

Die letzten 4 können folgende Integer-Werte zurückliefern:

-1keine Aktion durchzuführen
1angekündigt (nur für Features)
2nicht vorhanden
3auf lokalem Computer
4von Quelle ausführen

Als ich diesen Text geschrieben habe, standen sie noch unter Expression Syntax zur Verfügung.

Leave a Reply