ClickOnce-Sicherheit und Bereitstellung

ClickOnce ist eine Bereitstellungstechnologie, mit der selbstaktualisierende Windows-basierte Anwendungen erstellt werden können, für deren Installation und Ausführung sehr wenig Benutzerinteraktion erforderlich ist. Visual Studio bietet vollständige Unterstützung zur Veröffentlichung und Aktualisierung von Anwendungen, die mit ClickOnce-Technologie bereitgestellt wurden, sofern die Projekte mithilfe von Visual Basic und Visual C# entwickelt wurden. Informationen zum Bereitstellen von Visual C++-Anwendungen finden Sie unter ClickOnce-Bereitstellung für Visual C++-Anwendungen.

Die ClickOnce-Bereitstellung löst drei Hauptprobleme bei der Bereitstellung:

  • Schwierigkeiten beim Aktualisieren von Anwendungen. Bei der Bereitstellung mit Microsoft Windows Installer kann der Benutzer bei jeder Aktualisierung ein Update (eine MSP-Datei) installieren und auf das installierte Produkt anwenden. Mit ClickOnce können Sie Updates automatisch bereitstellen. Dabei werden nur die Teile der Anwendung heruntergeladen, die geändert wurden. Anschließend wird die vollständige aktualisierte Anwendung von einem neuen parallelen Ordner aus neu installiert.

  • Auswirkungen auf den Computer des Benutzers. Bei der Bereitstellung mit Windows Installer hängen Anwendungen oft von gemeinsam genutzten Komponenten ab. Dies kann zu Versionskonflikten führen. Bei der ClickOnce-Bereitstellung ist jede Anwendung völlig unabhängig und verursacht keine Konflikte mit anderen Anwendungen.

  • Sicherheitsberechtigungen. Bei der Bereitstellung mit Windows Installer sind Administratorberechtigungen erforderlich. Außerdem ist nur eine eingeschränkte Benutzerinstallation möglich. Bei der ClickOnce-Bereitstellung kann die Installation durch Benutzer ohne Administratorberechtigungen erfolgen. Es werden nur die Rechte für Codezugriffssicherheit gewährt, die für die Anwendung erforderlich sind.

In der Vergangenheit haben diese Probleme manchmal dazu geführt, dass Webanwendungen anstelle von Windows-Anwendungen entwickelt wurden. Dabei gingen die umfangreichen Features für die Benutzeroberfläche zu Gunsten der einfacheren Installation verloren. Bei Anwendungen, die mit ClickOnce bereitgestellt werden, können Sie die Vorzüge beider Technologien nutzen.

Was ist eine ClickOnce-Anwendung?

Eine ClickOnce-Anwendung ist eine Windows Presentation Foundation (XBAP-Format)-, Windows Forms (EXE-Format)-, Konsolenanwendungs (EXE-Format)- oder Office (DLL-Format)-Lösung, die unter Verwendung der ClickOnce-Technologie veröffentlicht wurde. Sie können eine ClickOnce-Anwendung auf drei Arten veröffentlichen: auf einer Webseite, in einer Dateifreigabe im Netzwerk oder auf einem Datenträger wie einer CD-ROM. Eine ClickOnce-Anwendung kann auf dem Computer des Endbenutzers installiert und lokal ausgeführt werden, auch wenn der Computer offline ist, oder sie kann als nur online verfügbares Programm ausgeführt werden, ohne dass auf dem Computer des Endbenutzers Dateien installiert werden. Weitere Informationen finden Sie unter Auswählen einer Strategie für die ClickOnce-Bereitstellung.

ClickOnce-Anwendungen können sich selbst aktualisieren. Dabei können sie prüfen, ob neuere Versionen vorliegen, und die aktualisierten Dateien automatisch austauschen. Der Entwickler kann das Updateverhalten festlegen. Der Netzwerkadministrator kann ebenfalls Updatestrategien steuern und ein Update z. B. als obligatorisch kennzeichnen. Der Endbenutzer oder Administrator kann ein Update auch auf eine vorherige Version zurücksetzen. Weitere Informationen hierzu finden Sie unter Auswählen einer Strategie für die ClickOnce-Aktualisierung.

Da ClickOnce-Anwendungen isoliert sind, kann das Installieren oder Ausführen einer ClickOnce-Anwendung vorhandene Anwendungen nicht beschädigen. ClickOnce-Anwendungen sind in sich abgeschlossen. Jede ClickOnce-Anwendung wird je Benutzer bzw. je Anwendung in einen sicheren Cache installiert und dort ausgeführt. ClickOnce-Anwendungen werden in der Sicherheitszone für das Internet oder Intranet ausgeführt. Falls notwendig kann die Anwendung erhöhte Sicherheitsberechtigungen anfordern. Weitere Informationen finden Sie unter Sichern von ClickOnce-Anwendungen.

Funktionsweise der ClickOnce-Sicherheit

Die ClickOnce-Kernsicherheit basiert auf Zertifikaten, Codezugriffssicherheitsrichtlinien und der vertrauenswürdigen ClickOnce-Eingabeaufforderung.

Zertifikate

Authenticode-Zertifikate werden zur Überprüfung der Echtheit des Herausgebers der Anwendung verwendet. Durch die Verwendung von Authenticode zur Anwendungsbereitstellung ist ClickOnce dabei behilflich, schädliche Programme davon abzuhalten, sich als rechtmäßiges Programm mit vertrauenswürdiger Quelle auszugeben. Optional können Zertifikate auch zur Unterzeichnung der Anwendung und der Bereitstellungsmanifeste verwendet werden. So kann bewiesen werden, dass die Dateien nicht verändert wurden. Weitere Informationen finden Sie unter ClickOnce und Authenticode. Zertifikate können ebenfalls verwendet werden, um Clientcomputer für die Integration einer Liste vertrauenswürdiger Herausgeber zu konfigurieren. Wurde eine Anwendung von einem vertrauenswürdigen Herausgeber veröffentlicht, kann sie ohne Benutzerinteraktion installiert werden. Weitere Informationen finden Sie unter Überblick über die Bereitstellung vertrauenswürdiger Anwendungen.

Codezugriffssicherheit

Mit der Funktion für die Codezugriffssicherheit lässt sich der Codezugriff auf geschützte Ressourcen einschränken. In den meisten Fällen können Sie die Zonen "Internet" oder "Lokales Intranet" auswählen, um die Berechtigungen zu beschränken. Verwenden Sie im Projekt-Designer die Seite Sicherheit, um die für die Anwendung erforderliche Zone anzufordern. Sie können auch Anwendungen mit eingeschränkten Berechtigungen debuggen, um die Endbenutzererfahrung zu emulieren. Weitere Informationen finden Sie unter Codezugriffssicherheit für ClickOnce-Anwendungen.

ClickOnce-Eingabeaufforderung zur Vertrauenswürdigkeit

Fordert die Anwendung mehr Berechtigungen an als die Zone zulässt, kann der Endbenutzer zum Treffen einer Entscheidung über die Vertrauenswürdigkeit aufgefordert werden. Der Endbenutzer kann entscheiden, ob ClickOnce-Anwendungen, wie Windows Forms-Anwendungen, Windows Presentation Foundation-Anwendungen, Konsolenanwendungen, XAML-Browseranwendungen und Office-Lösungen vertrauenswürdig sind und ausgeführt werden dürfen. Weitere Informationen finden Sie unter Gewusst wie: Konfigurieren des Verhaltens der ClickOnce-Eingabeaufforderung zur Vertrauenswürdigkeit.

Funktionsweise der ClickOnce-Bereitstellung

Der Kern der ClickOnce-Bereitstellungsarchitektur beruht auf zwei XML-Manifestdateien: einem Anwendungsmanifest und einem Bereitstellungsmanifest. Die Dateien werden zur Beschreibung verwendet, von wo die ClickOnce-Anwendungen installiert werden und wie und wann sie aktualisiert werden.

Veröffentlichen von ClickOnce-Anwendungen

Im Anwendungsmanifest wird die Anwendung selbst beschrieben. Eingeschlossen sind dabei die Assemblys, die Abhängigkeiten und die Dateien, aus denen die Anwendung besteht, die erforderlichen Berechtigungen und der Speicherort, an dem Updates verfügbar sind. Der Anwendungsentwickler erstellt das Anwendungsmanifest mit dem Webpublishing-Assistenten in Visual Studio oder mit dem Tool zum Generieren und Bearbeiten von Manifesten (Mage.exe) in Windows Software Development Kit (SDK). Weitere Informationen finden Sie unter Gewusst wie: Veröffentlichen einer ClickOnce-Anwendung mit dem Webpublishing-Assistenten.

Im Bereitstellungsmanifest wird beschrieben, wie die Anwendung bereitgestellt wird. Eingeschlossen sind dabei der Speicherort des Anwendungsmanifests sowie die Version der Anwendung, die auf den Clients ausgeführt wird.

Bereitstellen von ClickOnce-Anwendungen

Nach der Erstellung wird das Bereitstellungsmanifest an den Bereitstellungsspeicherort kopiert. Hierbei kann es sich um einen Webserver, eine Dateifreigabe im Netzwerk oder einen Datenträger wie eine CD handeln. Außerdem werden das Anwendungsmanifest und alle Anwendungsdateien an einen Bereitstellungsspeicherort kopiert, der im Bereitstellungsmanifest angegeben ist. Dies kann derselbe Bereitstellungsspeicherort oder ein anderer Speicherort sein. Wenn Sie den Webpublishing-Assistenten in Visual Studio verwenden, werden die Kopiervorgänge automatisch ausgeführt.

Installieren von ClickOnce-Anwendungen

Nach der Bereitstellung am Bereitstellungsspeicherort können Endbenutzer die Anwendung herunterladen und installieren, indem Sie auf einer Webseite oder in einem Ordner auf das Symbol doppelklicken, dass die Datei mit dem Bereitstellungsmanifest darstellt. In den meisten Fällen wird ein einfaches Dialogfeld angezeigt, in dem der Endbenutzer die Installation bestätigen muss. Anschließend erfolgt die die Installation ohne weiteren Eingriff, und die Anwendung wird gestartet. In Situationen, in denen für die Anwendung höhere Berechtigungen erforderlich sind oder die Anwendung nicht mit einem vertrauenswürdigen Zertifikat unterzeichnet wurde, wird der Benutzer im Dialogfeld außerdem dazu aufgefordert, die Berechtigungen zu gewähren, bevor die Installation fortfahren kann. Obwohl ClickOnce für einzelne Benutzer installiert wird, kann die Berechtigungsausweitung erforderlich sein, wenn für erforderliche Komponenten Administratorrechte benötigt werden. Weitere Informationen zu erweiterten Berechtigungen finden Sie unter Sichern von ClickOnce-Anwendungen.

Zertifikate können über Vertrauenswürdigkeit auf Computer- oder Unternehmensebene verfügen. So können vertrauenswürdige ClickOnce-Anwendungen automatisch installiert werden. Weitere Informationen über vertrauenswürdige Zertifikate finden Sie unter Überblick über die Bereitstellung vertrauenswürdiger Anwendungen.

Die Anwendung kann dem Startmenü des Benutzers und der Gruppe Software in der Systemsteuerung hinzugefügt werden. Im Gegensatz zu anderen Bereitstellungstechnologien wird dem Ordner Programme oder der Registrierung nichts hinzugefügt, und für die Installation sind keine Administratorberechtigungen erforderlich.

Hinweis

Es kann auch festgelegt werden, dass die Anwendung nicht dem Startmenü und der Gruppe Software hinzugefügt wird. Die Anwendung verhält sich dann wie eine Webanwendung.Weitere Informationen finden Sie unter Auswählen einer Strategie für die ClickOnce-Bereitstellung.

Aktualisieren von ClickOnce-Anwendungen

Beim Erstellen einer aktualisierten Version der Anwendung müssen Entwickler auch ein neues Anwendungsmanifest generieren und Dateien an einen Bereitstellungsspeicherort kopieren. Hierbei handelt es sich i. d. R. um einen nebengeordneten Ordner des ursprünglichen Bereitstellungsordners der Anwendung. Der Administrator aktualisiert das Bereitstellungsmanifest, um den Speicherort der neuen Anwendungsversion anzugeben.

Hinweis

Diese Schritte können mit dem Webpublishing-Assistenten in Visual Studio ausgeführt werden.

Zusätzlich zum Bereitstellungsspeicherort enthält das Bereitstellungsmanifest einen Updatepfad (eine Webseite oder eine Dateifreigabe im Netzwerk), über den die Anwendung nach aktualisierten Versionen sucht. Die Eigenschaften für die Veröffentlichung in ClickOnce geben an, wann und wie oft die Anwendung die Updates überprüfen soll. Das Updateverhalten kann im Bereitstellungsmanifest angegeben werden. Mit den ClickOnce-APIs kann es aber auch in der Benutzeroberfläche der Anwendung als Auswahlmöglichkeit für den Benutzer angezeigt werden. Außerdem können die Publish-Eigenschaften verwendet werden, um Updates als obligatorisch zu kennzeichnen oder die Anwendung auf eine frühere Version zurückzusetzen. Weitere Informationen hierzu finden Sie unter Auswählen einer Strategie für die ClickOnce-Aktualisierung.

Drittanbieter-Installationsprogramme

Sie können das ClickOnce-Installationsprogramm so anpassen, dass Komponenten von Drittanbietern zusammen mit Ihrer Anwendung installiert werden. Das verteilbare Paket (EXE- oder MSI-Datei) muss vorliegen und mit einem sprachunabhängigen Produktmanifest und einem sprachspezifischen Paketmanifest beschrieben werden. Weitere Informationen finden Sie unter Erstellen von Bootstrapperpaketen.

ClickOnce-Tools

In der folgenden Tabelle sind die Tools zur Erstellung, Bearbeitung, Unterzeichnung und erneuten Unterzeichnung der Anwendungs- und Bereitstellungsmanifeste abgebildet.

Tool

Beschreibung

Seite "Sicherheit", Projekt-Designer

Unterzeichnet die Anwendungs- und Bereitstellungsmanifeste.

Seite "Veröffentlichen", Projekt-Designer

Erstellt und bearbeitet die Anwendungs- und Bereitstellungsmanifeste für Visual Basic- und Visual C#-Anwendungen.

Mage.exe (Tool zum Generieren und Bearbeiten von Manifesten)

Erstellt die Anwendungs- und Bereitstellungsmanifeste für Visual Basic-, Visual C#- und Visual C++-Anwendungen.

Unterzeichnet die Anwendungs- und Bereitstellungsmanifeste bzw. unterzeichnet sie erneut.

Kann von Batchskripts und der Eingabeaufforderung ausgeführt werden.

MageUI.exe (Tool zum Generieren und Bearbeiten von Manifesten, grafischer Client)

Erstellt und bearbeitet die Anwendungs- und Bereitstellungsmanifeste.

Unterzeichnet die Anwendungs- und Bereitstellungsmanifeste bzw. unterzeichnet sie erneut.

GenerateApplicationManifest-Aufgabe

Erstellt das Anwendungsmanifest.

Kann in MSBuild ausgeführt werden. Weitere Informationen hierzu finden Sie unter MSBuild-Referenz.

GenerateDeploymentManifest-Aufgabe

Erstellt das Bereitstellungsmanifest.

Kann in MSBuild ausgeführt werden. Weitere Informationen hierzu finden Sie unter MSBuild-Referenz.

SignFile-Aufgabe

Unterzeichnet die Anwendungs- und Bereitstellungsmanifeste.

Kann in MSBuild ausgeführt werden. Weitere Informationen hierzu finden Sie unter MSBuild-Referenz.

Microsoft.Build.Tasks.Deployment.ManifestUtilities

Entwickeln Sie eigene Anwendung, um die Anwendungs- und die Bereitstellungsmanifeste zu generieren.

In der folgenden Tabelle wird die jeweilige .NET Framework-Version angezeigt, die für die Unterstützung von ClickOnce-Anwendungen in diesen Browsern erforderlich ist.

Browser

.NET Framework-Version

Internet Explorer

2.0, 3.0, 3.5, 3.5 SP1, 4

Firefox

2.0 SP1, 3.5 SP1, 4

Siehe auch

Konzepte

ClickOnce-Bereitstellung unter Windows Vista

Veröffentlichen von ClickOnce-Anwendungen

Sichern von ClickOnce-Anwendungen

Bereitstellen von COM-Komponenten mit ClickOnce

Erstellen von ClickOnce-Anwendungen über die Befehlszeile

Debuggen von ClickOnce-Anwendungen, die System.Deployment.Application verwenden