2016-04-22 16 views
1

Lange Rede kurzer Sinn, einer meiner Kunden meines Arbeitgebers hat eine aaS-Plattform, die auf einem Stück Software beruht, die eine Clickonce-Anwendung ist. Diese spezielle App wird von einem Softwareentwickler von Drittanbietern entwickelt und an die Kundenfirma meines Arbeitgebers lizenziert. Es hat auch eine große Anzahl von Voraussetzung/Abhängigkeit Anwendungen, die installiert werden müssen, damit es funktioniert, aber nicht als Teil der ClickOnce-Installation bereitgestellt werden. Wichtig: Da es von einem Drittanbieter entwickelt und lizenziert wird, ist es nicht möglich, Änderungen an der Anwendung selbst vorzunehmen.Kann ich eine ClickOnce-Anwendung in einem WiX-Bootstrapper bündeln? Wie?

Bislang wurde die eigentliche Installation der Anwendung auf Endpunkten von der Client-Firma übernommen, indem ein vorimplementierter Computer bereitgestellt wurde oder wenn der Client seine eigene Hardware verwenden wollte Viele .bat-Skripte müssen manuell auf jedem Computer ausgeführt werden, der als Endpunkt für ihren Dienst verwendet werden soll. Die Batch-Skripts erledigen grundsätzlich die Aufgabe eines Bootstrappers und installieren die Voraussetzungen, führen notwendige Systemkonfigurationsänderungen und -prüfungen durch und rufen dann das Installationsprogramm für ClickOnce-Anwendungen auf.

Wie erwartet, mag sie diese Lösung nicht, und möchte ein tatsächliches Installationsprogramm, also habe ich angefangen, einen Bootstrapper mit WiX/Burn zu erstellen, aber ich bin jetzt fest, wie Sie die ClickOnce-Anwendung in Mein Bootstrapper-Projekt. Ich kann keine Dokumentation zu diesem online zu finden scheinen, woraufhin sich die Frage:

Kann ich eine Clickonce-Anwendung in eine WiX Bootstrap-Programm bündeln? Wie?

Wenn es einen Unterschied macht, wird die ClickOnce-Anwendung von einem der Server des Kundenunternehmens veröffentlicht, so dass ich vollen Zugriff auf das ClickOnce-Manifest und alle .deploy-Dateien habe.

+0

Ich nehme an, Sie können, sind es nur als ExePackage in der Kette? Sie müssen nur die richtige DetectCondition herausfinden, um festzustellen, ob Sie die EXE ausführen sollten. Ich habe jedoch noch nie mit ClickOnce gearbeitet. –

+0

@BrianSutherland Ich wäre begeistert, wenn das die Antwort ist, aber wie ich nie mit Clickonce entweder gearbeitet habe, ich habe keine Ahnung. Völlig Neuland für mich, und so bin ich ein wenig besorgt darüber, ob dies tun könnte, all die Dinge brechen, wenn die Clickonce-Anwendung versucht, aktualisiert sich neben oder etwas in der Art. Scheint, als ob es für mich schlecht wäre, wenn ich der Grund wäre, dass zehntausend Endpunkte plötzlich nicht mehr funktionieren. :) – HopelessN00b

Antwort

1

Sie können eine Seidenhandtasche von einem Ohr der Sau machen. Ich denke, das Beste, was Sie tun können, ist ein Abhängigkeits-Installer für eine bestimmte Version des ClickOnce-Installationsprogramms. Niemand sollte erwarten, dass eine zukünftige Version der Anwendung dieselben Abhängigkeiten aufweist.

(Zu dieser Zeit, obwohl, vielleicht werden sie ihre Clickonce Installer beheben, indem Abhängigkeiten einschließlich. Oder verlassen Abhängigkeiten, die sie Schwierigkeiten haben, in Clickonce setzen, sagen diejenigen, für veraltete Versionen von Windows benötigt.)

Sobald Abhängigkeiten installiert sind, kann der Bootstrapper die Anwendung starten, die sie installieren oder aktualisieren würde. (. Logisch, folgt dies der Kette)

<Variable Name="LaunchTarget" Value="http://example.com/path/product.application"/> 

ein bisschen Sichern Sie konnte eine MsiPackage mit all den Clickonce-Dateien erstellen und verwenden, um eine „file: //“ URI für die LaunchTarget. Dies würde erfordern, dass Sie jede neue Version neu erstellen und erneut bereitstellen (was die Natur von ClickOnce zunichte macht), aber Sie von nicht getesteten Anwendungsupdates isolieren würde.

+0

Ich werde das ausprobieren ... danke. Ich darf noch Lippenstift auf diesem Schwein bekommen! – HopelessN00b