WiX - Ernten Sie Nicht-Projekt-Assemblys in der Setup-Ausgabe

8

Ich verwende WiX 3.5 in VS 2010, und ich habe alle Projektassemblies als Referenzen im Setup-Projekt (.wixproj) hinzugefügt und die Harvest-Eigenschaft auf True gesetzt, damit die Binärdateien, der Inhalt und die Satelliten angezeigt werden sind in der .msi-Datei enthalten.

Wie würde ich jedoch Assemblys (.dlls) von Drittanbietern zur MSI-Ausgabe hinzufügen? Muss ich jedes explizit zur Product.wxs-Datei hinzufügen, oder gibt es eine bessere Möglichkeit? Im Idealfall möchte ich sie als Dateiverweise im Setup-Projekt hinzufügen, aber das scheint keine Option zu sein?

    
devdigital 09.02.2011, 14:15
quelle

2 Antworten

7

Ja, Sie müssen sie manuell in eine Wxs-Datei ODER einfügen Sie können einen Pre-Build-Schritt verwenden, der heat verwendet, um diese Datei für Sie zu ernten (vorausgesetzt, alle diese Dateien befinden sich in einem separaten Verzeichnis).

Heat ist Teil von Wix und kann mit dem Schalter dir ein ganzes Verzeichnis ernten. Abhängig von den Befehlszeilenargumenten wird eine separate wxs-Datei erzeugt, die eine einzelne ComponentGroup enthält. Referenzieren Sie diese ComponentGroup einfach über product.wxs.

Ein Beispiel dafür, wie ich derzeit Wärme nutze, um mein Veröffentlichungsverzeichnis zu ernten:

hitze dir "../../bin/release" -gg -cg CG.ApplicationBinaries -dr INSTALLDIR -scom -sfrag -sreg -srd -vari var.BuildOutputDir -o ApplicationBinaries.wxs

Dies erzeugt die Datei ApplicationBinaries.wxs:

%Vor%     
Elmar de Koning 10.02.2011, 10:09
quelle
4

Derzeit gibt es einen Fehler in Heat , der verwendet wird Durch das WiX-Installer-Projekt werden referenzierte Assemblies eines Projekts nicht automatisch geerntet. Sie müssen wahrscheinlich auf Version 4 warten, bevor sie angesprochen wird.

In der Zwischenzeit wird die Antwort von @Elmar de Koning wahrscheinlich die beste sein.

    
David Keaveny 10.11.2011 22:15
quelle