Bedingte Installation mit Wix

8

Ist es möglich, eine konditionale Installationskonfiguration zu haben, die mit der Visual Studio-Konfigurationsumgebung verknüpft ist?

Wenn Sie zum Beispiel die DEBUG- oder RELEASE-Konfiguration auswählen, wählt Wix verschiedene ausführbare Dateien in der gebauten Installation aus.

Grundsätzlich werde ich verschiedene Installationen von denselben Projekten erstellen, aber sie unterscheiden sich durch die Komponenten. Einige Komponenten werden aus demselben Projekt erstellt, aber mit unterschiedlichen Präprozessoroptionen erstellt.

Natürlich ist es möglich, jede benötigte Komponente einzuschließen und dann Features zu definieren, um eine bestimmte Komponente für die Installation auszuwählen, aber ich möchte einige ausführbare Dateien nicht wirklich neu verteilen.

Erstellen Sie verschiedene Wix-Projekte ist die einzige Lösung?

    
Luca 10.06.2010, 06:00
quelle

3 Antworten

6

Verwenden Sie den Präprozessor, z. B .: <?if?> , um Komponenten abhängig von der Konfiguration bedingt / auszuschließen.

    
Bob Arnson 10.06.2010, 17:51
quelle
9

Nachdem ich die beiden anderen Antworten und Lucas Forschung zusammengetragen habe, kam ich auf diese Lösung, die mir scheint arbeiten (beachten Sie, dass der String-Vergleich Groß-und Kleinschreibung zu beachten scheint, und das Fehlen von Anführungszeichen scheint korrekt zu sein, ich habe dies mit WiX 3.7 getestet):

%Vor%     
BrainSlugs83 11.06.2013 04:25
quelle
8

Ihre wix-Skripte haben Zugriff auf Build-Parameter wie die Konfiguration ('debug' oder 'release'). Sie können daher die richtigen Binärdateien für die aktuelle Konfiguration bedingt in die Anweisung $ (var.Configuartion) aufnehmen:

%Vor%

Wenn Sie den Build-Release-Modus ausführen, wird dieses Script die Release-Version der Binärdatei übernehmen. Ebenso wird im Debug-Modus das Debug-Binary abgeholt. Dieser Ansatz erfordert keine Vorverarbeitung - das Skript trifft zur Build-Zeit konfigurationsbezogene Entscheidungen.

    
Stuart Lange 11.06.2010 14:33
quelle