8.5 ClickOnce-Verteilung
Die Installation einer Anwendung mit ClickOnce statt mit dem im letzten Abschnitt besprochenen Windows Installer hat einige besondere Eigenschaften:
- Die zu installierende Komponente liegt im Netzwerk oder auf einer CD-ROM.
- Komponenten auf einem Webserver werden immer in einem verschlüsselten Pfad im Benutzerprofil des aktuell angemeldeten Anwenders installiert (Dokumente und Einstellungen\<Benutzer>\Lokale Einstellungen\Apps).
- Mit ClickOnce verteilte Anwendung nehmen weder Einträge in der Registrierungsdatenbank noch unter Desktop vor.
- Eine ClickOnce-Anwendung stellt selbst fest, ob eine Aktualisierung erforderlich ist, und lädt nur die neueren Teile herunter. Anschließend wird die vollständige aktualisierte Anwendung von einem neuen parallelen Ordner aus neu installiert.
- ClickOnce-Anwendungen im Online-Modus sind nicht im Startmenü und werden über einen Link gestartet.
Der Kern der neuen Architektur beruht auf zwei XML-Manifestdateien, die automatisch von Visual Studio erzeugt werden:
- Anwendungsmanifest: Anwendung (inklusive Assemblies) und der Speicherort für Updates
- Bereitstellungsmanifest: Art der Bereitstellung (inklusive Speicherort des Anwendungs-manifests sowie der Version der Anwendung)
Das Ziel von ClickOnce ist, die Verteilung von Anwendungen zentral zu verwalten und zu vereinfachen. Aber es gibt auch Einschränkungen, die schon in der Planungsphase zu berücksichtigen sind. Während der Einrichtung einer ClickOnce-Anwendung sind keine Operationen erlaubt, die administrative Rechte voraussetzen. Dazu gehören der Zugriff auf das Dateisystem und der Zugriff auf die Registrierungsdatenbank. Genauso wenig können Assemblies in den Global Assembly Cache (GAC) eingetragen oder Windows-Dienste eingerichtet werden.
8.5.1 Erstellen einer ClickOnce-Anwendung
Die Karteikarte Veröffentlichen der Projekteinstellungen ist die zentrale Stelle zur Konfiguration der Einstellungen, die beim Veröffentlichen auf dem Server zur Verfügung stehen. Abbildung 8.28 zeigt die Karteikarte.
Abbildung 8.28 ClickOnce-Optionen einer Windows-Anwendung
Entscheidend ist zunächst einmal der Ort, an dem die ClickOnce-Komponente abgelegt wird. Als Veröffentlichungsort ist standardmäßig ein virtuelles Verzeichnis auf dem lokalen Webserver eingetragen. Über die Schaltfläche ellipsebutton können Sie zu einem der folgenden erlaubten Orte navigieren, an den die Anwendung kopiert werden soll:
- einen Dateipfad
- auf den lokalen Webserver (IIS, siehe Abbildung 8.29)
- auf einen FTP-Server
- auf eine entfernte Website, die mit den FrontPage-Servererweiterungen konfiguriert ist
Abbildung 8.29 Veröffentlichungsort
Fällt die Wahl auf den Offline-Modus, werden für die Anwendung ein Startmenüeintrag und ein Eintrag in den Systemeinstellungen unter Software hinzugefügt. Hierüber kann der Anwender später unter Umständen die Anwendung auch wieder deinstallieren.
Beachten Sie, dass Sie im Offline-Modus über die dann aktivierte Schaltfläche Updates… auch das Aktualisieren beeinflussen können. Den Dialog sehen Sie in Abbildung 8.30. Vorgegeben ist, dass die Anwendung nach Updates suchen soll. Braucht Ihre Software keine automatischen Updates, können Sie diese Option deaktivieren. Andernfalls konfigurieren Sie die Häufigkeit der Update-Prüfung.
Abbildung 8.30 Konfiguration der Update-Suche
Ein Klick auf die Schaltfläche Anwendungsdateien… in der Registerkarte Veröffentlichen öffnet einen Dialog, in dem Sie angeben, welche Dateien auf den Server kopiert werden sollen. Ist eine benutzerdefinierte Klassenbibliothek unter Verweise eingebunden, wird die DLL automatisch mit in den Verteilungsprozess einbezogen.
Im Dialog Erforderliche Komponenten… wählen Sie die Komponenten aus, die ebenfalls auf den Server kopiert werden sollen, wie zum Beispiel das .NET Framework.
Zuletzt können Sie noch unter Optionen… diverse Einstellungen vornehmen, die mehr allgemeiner Natur sind.
Die Anwendung soll hier auf den lokalen Webserver kopiert werden, und die Offline-Ausführung der ClickOnce-Anwendung soll ausgewählt sein. Auf dem Webserver wird ein virtuelles Verzeichnis angelegt, das standardmäßig wie das Projekt heißt. Das Verzeichnis enthält neben dem Bereitstellungsmanifest (das ist die Datei mit der Erweiterung .APPLICATION) auch eine setup.exe-Datei, die die Installation startet, sowie die Datei publish.htm, die der Anwender aufruft, um die Anwendung zu installieren.
Zudem wird der Anwendung ein Unterverzeichnis hinzugefügt, dessen Name sich aus dem Namen der Anwendung plus einer vierstelligen Versionsnummer (mit Unterstrichen statt Punkten) ergibt. Dieses Verzeichnis enthält die tatsächlichen Anwendungsdaten und das Anwendungsmanifest mit der Erweiterung .MANIFEST.
Nun folgt ein Klick auf den Button Jetzt veröffentlichen – das war’s.
8.5.2 Die Installation einer ClickOnce-Anwendung
Zur Installation öffnen wir im Webbrowser die Datei publish.htm. Die Webseite enthält eine Schaltfläche, über die die Anwendung im lokalen Cache eingerichtet wird (siehe Abbildung 8.31). Zuvor müssen Sie jedoch die Installation der Anwendung bestätigen, da der Herausgeber als nicht vertrauenswürdig eingestuft wird – obwohl Sie in diesem Fall selbst der Herausgeber sind. Anschließend wird das Programm gestartet.
Abbildung 8.31 Webseite zur Installation
Da die Anwendung für den Offline-Modus eingerichtet worden ist, können Sie diese nachfolgend über das Startmenü starten. Dazu ist keine Verbindung zum Webserver notwendig. Zum Test können Sie im Internetdienste-Manager den Webserver anhalten. Es wird zwar versucht, Kontakt zum Webserver aufzunehmen, aber das Starten der Anwendung ist nicht davon abhängig. Hätten Sie sich für den Online-Modus bei der Kompilierung der Anwendung entschieden, wäre ein Aufruf von publish.htm notwendig gewesen. Diese steht aber nur dann zur Verfügung, wenn der Webserver seine Dienste ausführt.
Veröffentlichen Sie die Anwendung erneut, wird automatisch die Versionsnummer erhöht – falls Sie auf der Registerkarte Veröffentlichen des Projekteigenschaftsfensters die Zahlen nicht geändert haben Auf dem Webserver wird ein zweites Unterverzeichnis für die neue Version angelegt, und im Bereitstellungsmanifest wird die Umleitung darauf eingetragen.
Wenn Sie die Anwendung über das Startmenü aufrufen, sucht der Client nach eventuellen Updates. Ist der Webserver in Betrieb, wird die neue Version erkannt, geladen und ausgeführt. Der Anwender braucht in diesem Fall in keiner Weise einzugreifen oder selbst für die Neuinstallation der Anwendung zu sorgen. Der ClickOnce-Prozess übernimmt das vollkommen automatisch.
Ihre Meinung
Wie hat Ihnen das Openbook gefallen? Wir freuen uns immer über Ihre Rückmeldung. Schreiben Sie uns gerne Ihr Feedback als E-Mail an kommunikation@rheinwerk-verlag.de.