Ich habe zwei Fragen zu den Verzeichnissen mit Fragmenten in Windows Installer XML.
Ich habe diese Fragmentdatei von der heat.exe:
%Vor%und ich habe diese Wix-Installer-Datei:
%Vor%So weit.
Wenn ich nun diese Dateien in wixobj erzeuge, zeigt der Compiler Fehler an, weil die Dateien nicht gefunden werden können. Die Dateien befinden sich in einem Verzeichnis namens "Test". Und in der Datei heißt es SourceDir.
Für eine kleine Problemumgehung kann ich das Testverzeichnis kopieren und SourceDir nennen ;-). So wird mein Setup erstellt.
Jetzt installiere ich mein Paket. Aber was auch immer ich mache, die Dateien werden in C: \ Test installiert.
Aber ich möchte, dass es in meinem Programmverzeichnis installiert wird.
In vielen Beispielen kann ich es tun, wie in der Datei, aber ich muss die Guides kennen. Aber wir machen wix, um alle Dateien aus einem Verzeichnis zu bekommen, ohne uns die Hände zu geben.
Sehen Sie sich -dr
switch von heat.exe
genauer an. Sie können dort die notwendige Verzeichnisreferenz anlegen. Definieren Sie Ihre Verzeichnisstruktur in der Hauptdatei wie jetzt und stellen Sie die richtige Verzeichnis-ID für heat.exe
bereit.
UPDATE:
Ok, das Folgende funktioniert für mich. Die Hauptverzeichnisstruktur:
%Vor%Das Feature verweist auf die ComponentGroup:
%Vor%Die Datei heat.exe generiert das folgende Fragment:
%Vor%Und schließlich sieht der Heizbefehl, der die notwendige Ausgabe erzeugt, so aus (Nant-Beispiel):
%Vor%Diese Snippets enthalten genügend Informationen, um zu verstehen, wie alles funktioniert. Spielen Sie mit den Heat.exe-Schaltern, um herauszufinden, welche Kombination Sie benötigen. Viel Glück!
Falls Leute wie ich immer noch nach Klärung suchen: Die <DirectoryRef Id="WebsiteFolder">
im Wärmefragment ist wichtig, es ist der Hinweis darauf, wo die Fragmentdateien installiert werden sollen. Wenn Sie mehrere Fragmente haben und sie an verschiedenen Orten platzieren möchten, ist DirectoryRef der Schlüssel.