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
| NOT | Invertiert die folgende Bedingung |
| AND | logisches Und |
| OR | logisches Oder |
| XOR | exklusives Oder |
| EQV | Äquivalenz ( A<=>B, A genau dann, wenn B) |
| IMP | Implikation (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:
| -1 | keine Aktion durchzuführen |
| 1 | angekündigt (nur für Features) |
| 2 | nicht vorhanden |
| 3 | auf lokalem Computer |
| 4 | von Quelle ausführen |
Als ich diesen Text geschrieben habe, standen sie noch unter Expression Syntax zur Verfügung.