Wie erstelle ich ein Wix Expepackage, das nur einen Downloadlink hat

8

Ich versuche, ein ExePackage [mit der DownloadUrl-Eigenschaft] in meinem Bundle zu erstellen, das Sql Express 2014 herunterlädt und es mit dem folgenden Code installiert

%Vor%

Wenn ich versuche, das Installationspaket zu erstellen, erhalte ich den folgenden Fehler ....

%Vor%

Ich kann die SourceFile-Eigenschaft auf eine lokale Datei setzen und diese in meine Installation einbeziehen, aber ich würde es vorziehen, nicht mit meinem Installer eine 800mb + -Datei zu verschieben.

    
PlTaylor 10.11.2014, 18:29
quelle

2 Antworten

12

Wenn Sie Ihr Bundle auf Compressed=no einrichten, wird die Quelldatei nicht in Ihr endgültiges Bundle einbezogen. Der Grund dafür, dass Sie "Datei nicht gefunden" erhalten, liegt darin, dass beim Erstellen des Installationsprogramms eine lokale Version der Paket-EXE-Datei erforderlich ist, um Informationen daraus zu erhalten. Wenn Sie ein Projekt erstellen möchten, das nur eine Download-URL enthält, müssen Sie ein RemotePayload -Element angeben und weitere definierende Informationen zum Remote-Paket bereitstellen.

Damit können Sie das Installationspaket erstellen, ohne die Quelldatei auf dem Computer zu haben, aber Sie müssen sicher sein, dass Ihre Payload genau beschrieben ist oder Ihre Installation fehlschlägt.

Stellen Sie auf Ihrem ExePackage -Element sicher, dass Sie das Name -Attribut enthalten, welches eines der erforderlichen Attribute neben SourceFile ist, aber SourceFile ist nicht erlaubt mit RemotePayload . Ihr Beispiel enthält es, also sollten Sie dort in Ordnung sein.

Fügen Sie das Element <RemotePayload> als Kind von ExePackage wie folgt ein:

%Vor%

Wo alle erforderlichen Informationen Attribute Ihres spezifischen Pakets sind. Wenn dies keine Option ist, müssen Sie sicherstellen, dass die Quelldatei zur Build-Zeit lokal verfügbar ist, aber stellen Sie sicher, dass sie nicht komprimiert ist. Der Benutzer kann also installieren und die Payload wird von Ihrer URL heruntergeladen.

>

Weitere Informationen finden Sie in der Referenz zu RemotePayload .

    
Ryan J 10.11.2014, 18:58
quelle
3

RyanJs Antwort ist großartig. Es hat mich auf die Plätze verwiesen, nachdem ich nicht die richtige magische Kombination gefunden hatte. Aber es dauerte noch einige Versuch und Irrtum, um eine Bundle-WXS-Datei zu erstellen, die tatsächlich funktionierte. Wenn Sie also ein neues Bundle-Projekt in Visual Studio erstellen und dann den Inhalt von bundle.wxs durch Folgendes ersetzen:

%Vor%

Sie können sehen, wie das funktioniert und dann ändern Sie es, um mit dem exe-Paket zu arbeiten, das Sie zu bündeln versuchen. *

Es war wirklich kontraintuitiv für mich, dass Sie Werte für SourceFile AND DownloadUrl angeben UND immer noch eine Kopie der heruntergeladenen Datei in Ihrem Projektverzeichnis haben. Eigentlich war es mehr als kontraintuitiv. Ich war mir sicher, dass ich NICHT die heruntergeladene Datei in meinem Projektverzeichnis hatte, wie ich Burn gesagt hatte, die Datei aus dem Paket wegzulassen. Aber so verstehe ich es jetzt:

  • 'Compressed="no" - weist Burn an, die exe nicht im gebündelten Code einzubetten Installer es baut
  • 'SourceFile="DLS8Setup.8.5.1.exe"' - sagt Brennen, um in das Projektverzeichnis zu wechseln und das heruntergeladene lokale Dokument zu verwenden Kopie des Zielpakets, um alle Informationen zu generieren, die Sie benötigen Andernfalls müssen Sie herausfinden und Ihren RemotePayload-Datensatz
  • einfügen
  • 'DownloadUrl = ...' - ist der eine Teil, der mir von Anfang an offensichtlich erschien

* "Mit welcher exe Sie versuchen zu bündeln" Disclaimer: Ich habe ursprünglich versucht, wirklich hart, ein Git Windows Installer-Paket für dieses Beispiel zu verwenden. Und mit genau der gleichen Syntax (und korrekten Namen und Pfaden, wirklich!), Ist die gebündelte Installation immer mit einem Zugriffsfehler und einer Nachricht wie "konnte die Nutzlast nicht erfassen" in der Protokolldatei fehlgeschlagen. Das Einzige, was am Git-Download merkwürdig war, war, dass es nicht wirklich von der URL kam, die ich verwendete, sondern dass ich den Download von irgendwo in der Amazon S3 Cloud umgeleitet habe. Meine Vermutung ist, dass Burn / WIX / Windows Installer gegen diesen Taschenspielertrick Einwände erheben könnte - und das irgendwie vernünftig. Je nachdem, welches Installationsprogramm Sie bündeln möchten, müssen Sie ihm unter Umständen eine eigene URL zuweisen, damit es mit dieser Funktion funktioniert.

    
Anne Gunn 15.06.2015 22:48
quelle

Tags und Links