ClickOnce-Sicherheit und -Bereitstellung

ClickOnce ist eine Bereitstellungstechnologie, mit der Windows-Anwendungen erstellt werden können, die eigenständig aktualisiert und mit minimaler Benutzerinteraktion installiert und ausgeführt werden. Visual Studio bietet vollständige Unterstützung für das Veröffentlichen und Aktualisieren von Anwendungen, die mit der ClickOnce-Technologie bereitgestellt werden, wenn Sie Ihre Projekte mit Visual Basic und Visual C# entwickelt haben. Weitere Informationen zum Bereitstellen von Visual C++-Anwendungen finden Sie unter ClickOnce-Bereitstellung für Visual C++-Anwendungen.

Mit der ClickOnce-Bereitstellung werden drei wesentliche Probleme bei der Bereitstellung überwunden:

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

  • Auswirkungen auf den Computer des Benutzers. Bei der Windows Installer-Bereitstellung basieren Anwendungen häufig auf freigegebenen Komponenten – mit einem Potenzial für Versionskonflikte. Bei der ClickOnce-Bereitstellung ist jede Anwendung eigenständig und kann andere Anwendungen nicht beeinträchtigen.

  • Sicherheitsberechtigungen. Die Windows Installer-Bereitstellung erfordert Administratorberechtigungen und lässt nur eingeschränkte Benutzerinstallation zu. Eine ClickOnce-Bereitstellung ermöglicht Nicht-Administratorbenutzern die Installation und gewährt nur die Codezugriffssicherheits-Berechtigungen, die für die Anwendung erforderlich sind.

    In der Vergangenheit haben diese Probleme Entwickler manchmal dazu veranlasst, Webanwendungen anstelle von Windows-basierten Anwendungen zu erstellen, wobei sie eine reichhaltige Benutzeroberfläche für einfache Installation opferten. Mithilfe von Anwendungen, die mit ClickOnce bereitgestellt werden, können Sie das Beste aus beiden Technologien nutzen.

Was ist eine ClickOnce-Anwendung?

Eine ClickOnce-Anwendung ist jede Windows Presentation Foundation- (XBAP-Datei) oder Windows Forms-Anwendung (EXE-Datei), Konsolenanwendung (EXE-Datei) oder Office-Lösung (DLL-Datei), die mithilfe der ClickOnce-Technologie veröffentlicht wird. Sie können eine ClickOnce-Anwendung auf drei verschiedene Arten veröffentlichen: über eine Webseite, über eine Netzwerkdateifreigabe oder über Legacymedien wie eine CD-ROM. Eine ClickOnce-Anwendung kann auf dem Computer eines Endbenutzers installiert und lokal ausgeführt werden, auch wenn der Computer offline ist, oder sie kann im reinen Onlinemodus ausgeführt werden, ohne dass dauerhaft etwas auf dem Computer des Endbenutzers installiert wird. Weitere Informationen finden Sie unter Auswählen einer Strategie für die ClickOnce-Bereitstellung.

ClickOnce-Anwendungen können sich selbst aktualisieren. Sie können nach neueren Versionen suchen, sobald sie verfügbar werden, und aktualisierte Dateien automatisch ersetzen. Der Entwickler kann das Aktualisierungsverhalten festlegen. Der Netzwerkadministrator kann ebenfalls Aktualisierungsstrategien steuern und eine Aktualisierung z.B. als obligatorisch kennzeichnen. Für Aktualisierungen kann auch vom Endbenutzer oder von einem Administrator ein Rollback auf eine frühere Version ausgeführt werden. Weitere Informationen finden Sie unter Auswählen einer ClickOnce-Updatestrategie.

Da ClickOnce-Anwendungen isoliert sind, kann das Installieren oder Ausführen einer ClickOnce-Anwendung vorhandene Anwendungen nicht beeinträchtigen. ClickOnce-Anwendungen sind eigenständig. Jede ClickOnce-Anwendung wird in einem sicheren Cache pro Benutzer und pro Anwendung installiert und ausgeführt. ClickOnce-Anwendungen werden im Internet oder in Intranetsicherheitszonen ausgeführt. Falls notwendig, kann die Anwendung erhöhte Sicherheitsberechtigungen anfordern. Weitere Informationen finden Sie unter Sichern von ClickOnce-Anwendungen.

Funktionsweise von ClickOnce-Sicherheit

Die zentrale ClickOnce-Sicherheit basiert auf Zertifikaten, Codezugriffs-Sicherheitsrichtlinien und der ClickOnce-Vertrauensstellung-Eingabeaufforderung.

Zertifikate

Authenticode-Zertifikate werden verwendet, um die Authentizität des Herausgebers der Anwendung zu überprüfen. Durch die Verwendung von Authenticode für die Anwendungsbereitstellung trägt ClickOnce dazu bei, zu verhindern, dass sich ein schädliches Programm als legitimes Programm darstellt, das aus einer etablierten, vertrauenswürdigen Quelle stammt. Optional können Zertifikate auch zum Signieren der Anwendungs- und Bereitstellungsmanifeste verwendet werden, um nachzuweisen, dass die Dateien nicht manipuliert wurden. Weitere Informationen finden Sie unter ClickOnce und Authenticode. Zertifikate können auch verwendet werden, um Clientcomputer so zu konfigurieren, dass sie über eine Liste vertrauenswürdiger Herausgeber verfügen. Wenn eine Anwendung von einem vertrauenswürdigen Herausgeber stammt, kann sie ohne Benutzerinteraktion installiert werden. Weitere Informationen finden Sie unter Überblick über die Bereitstellung vertrauenswürdiger Anwendungen.

Codezugriffssicherheit

Mithilfe von Codezugriffssicherheit wird der Zugriff von Code auf geschützte Ressourcen eingeschränkt. In den meisten Fällen können Sie die Zonen „Internet“ oder „Lokales Intranet“ verwenden, um die Berechtigungen einzuschränken. Verwenden Sie die Seite Sicherheit in ProjectDesigner, um die für die Anwendung geeignete Zone anzufordern. Sie können auch Anwendungen mit eingeschränkten Berechtigungen debuggen, um die Endbenutzerumgebung zu emulieren. Weitere Informationen finden Sie unter Code Access Security for ClickOnce Applications (Codezugriffssicherheit für ClickOnce-Anwendungen).

ClickOnce-Vertrauensaufforderung

Wenn die Anwendung umfangreichere Berechtigungen anfordert, als die Zone zulässt, kann der Endbenutzer aufgefordert werden, eine Vertrauensentscheidung zu treffen. Der Endbenutzer kann entscheiden, ob ClickOnce-Anwendungen wie Windows Forms-Anwendungen, Windows Presentation Foundation-Anwendungen, Konsolenanwendungen, XAML-Browseranwendungen und Office-Lösungen als vertrauenswürdig für die Ausführung eingestuft werden. Weitere Informationen finden Sie unter Vorgehensweise: Konfigurieren des Verhaltens der ClickOnce-Vertrauenseingabeaufforderung.

Wie funktioniert die ClickOnce-Bereitstellung?

Die zentrale ClickOnce-Bereitstellungsarchitektur basiert auf zwei XML-Manifestdateien: einem Anwendungsmanifest und einem Bereitstellungsmanifest. Die Dateien werden verwendet, um zu beschreiben, von wo aus die ClickOnce-Anwendungen installiert werden, wie sie aktualisiert werden und wann sie aktualisiert werden.

Veröffentlichen von ClickOnce-Anwendungen

Das Anwendungsmanifest beschreibt die Anwendung selbst. Dies umfasst die Assemblys, die Abhängigkeiten und Dateien, aus denen die Anwendung besteht, die erforderlichen Berechtigungen und den Speicherort, an dem Updates verfügbar sind. Der Anwendungsentwickler erstellt das Anwendungsmanifest mithilfe des Veröffentlichungs-Assistenten in Visual Studio (Veröffentlichungstool für .NET Core und .NET 5 oder höher) oder des Manifest Generation and Editing Tool (Mage.exe) im Windows Software Development Kit (SDK). Weitere Informationen finden Sie unter

In dem Bereitstellungsmanifest wird die Bereitstellung der Anwendung beschrieben. Dies schließt den Speicherort des Anwendungsmanifests und die Version der Anwendung ein, die Clients ausführen sollen.

Hinweis

Verwenden Sie in ClickOnce für .NET Core 3.1 und .NET 5 oder höher dotnet-mage.exe anstelle von Mage.exe. Weitere Informationen finden Sie unter ClickOnce für .NET.

Bereitstellen von ClickOnce-Anwendungen

Nach der Erstellung wird das Bereitstellungsmanifest an den Bereitstellungsspeicherort kopiert. Dabei kann es sich um einen Webserver, eine Dateifreigabe im Netzwerk oder um Legacymedien wie eine CD handeln. Das Anwendungsmanifest und alle Anwendungsdateien werden ebenfalls an einen Bereitstellungsort kopiert, der im Bereitstellungsmanifest angegeben wird. Dabei kann es sich um denselben Bereitstellungsspeicherort oder einen anderen Speicherort handeln. Wenn Sie den Veröffentlichungs-Assistenten in Visual Studio verwenden, werden die Kopiervorgänge automatisch ausgeführt.

Installieren von ClickOnce-Anwendungen

Nachdem sie am Bereitstellungsort bereitgestellt wurde, können Endbenutzer die Anwendung herunterladen und installieren, indem Sie auf ein Symbol klicken, das die Bereitstellungsmanifestdatei auf einer Webseite oder in einem Ordner darstellt. In den meisten Fällen wird dem Endbenutzer ein einfaches Dialogfeld angezeigt, in dem er aufgefordert wird, die Installation zu bestätigen. Danach wird die Installation fortgesetzt, und die Anwendung wird ohne zusätzlichen Eingriff gestartet. In Fällen, in denen die Anwendung erhöhte Berechtigungen erfordert oder wenn die Anwendung nicht mit einem vertrauenswürdigen Zertifikat signiert ist, fordert das Dialogfeld den Benutzer außerdem auf, Berechtigungen zu erteilen, bevor die Installation fortgesetzt werden kann. Obwohl ClickOnce-Installationen pro Benutzer erfolgen, sind möglicherweise Rechteerweiterungen erforderlich, wenn Voraussetzungen vorhanden sind, die Administratorrechte erfordern. Weitere Informationen zu erhöhten Berechtigungen finden Sie unter Sichern von ClickOnce-Anwendungen.

Zertifikate können auf Computer- oder Unternehmensebene vertrauenswürdig sein, sodass ClickOnce-Anwendungen, die mit einem vertrauenswürdigen Zertifikat signiert sind, ohne Benutzereingriff installiert werden können. Weitere Informationen zu vertrauenswürdigen Zertifikaten finden Sie unter Übersicht ü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 Administratorrechte erforderlich.

Hinweis

Es ist auch möglich, zu verhindern, dass die Anwendung zum Startmenü und der Gruppe Software hinzugefügt wird, wodurch sie sich letztlich wie eine Webanwendung verhält. Weitere Informationen finden Sie unter Auswählen einer Strategie für die ClickOnce-Bereitstellung.

Aktualisieren von ClickOnce-Anwendungen

Wenn Anwendungsentwickler eine aktualisierte Version der Anwendung erstellen, generieren sie ein neues Anwendungsmanifest und kopieren Dateien an einen Bereitstellungsort – in der Regel in einen Ordner, der mit dem ursprünglichen Anwendungsbereitstellungsordner gleichgeordnet ist. Der Administrator aktualisiert das Bereitstellungsmanifest so, dass es auf den Speicherort der neuen Version der Anwendung verweist.

Hinweis

Mit dem Veröffentlichungs-Assistenten in Visual Studio können diese Schritte ausgeführt werden. Für .NET Core und .NET 5 oder höher stellt das Veröffentlichungstool diese Schritte zur Verfügung.

Zusätzlich zum Bereitstellungsspeicherort enthält das Bereitstellungsmanifest auch einen Updatespeicherort (eine Webseite oder Netzwerkdateifreigabe), an den die Anwendung nach aktualisierten Versionen sucht. Veröffentlichungseigenschaften von ClickOnce werden verwendet, um anzugeben, wann und wie häufig die Anwendung nach Updates suchen soll. Das Updateverhalten kann im Bereitstellungsmanifest angegeben oder als Benutzerauswahl auf der Benutzeroberfläche der Anwendung mithilfe der ClickOnce-APIs angezeigt werden. Außerdem können die Eigenschaften zum Veröffentlichen verwendet werden, um Updates als obligatorisch zu kennzeichnen oder die Anwendung auf eine frühere Version zurückzusetzen. Weitere Informationen finden Sie unter Auswählen einer ClickOnce-Updatestrategie.

Installationsprogramme von Drittanbietern

Sie können Ihr ClickOnce-Installationsprogramm anpassen, um Komponenten von Drittanbietern zusammen mit Ihrer Anwendung zu installieren. Sie müssen über das Redistributionspaket (EXE- oder MSI-Datei) verfügen und das Paket mit einem sprachneutralen Produktmanifest und einem sprachspezifischen Paketmanifest beschreiben. Weitere Informationen finden Sie unter Erstellen von Bootstrapperpaketen.

ClickOnce-Tools

Die folgende Tabelle zeigt die Tools, mit denen Sie die Anwendungs- und Bereitstellungsmanifeste generieren, bearbeiten, signieren und erneut signieren können. Für .NET Core und .NET 5 oder höher werden Optionen, die MSBuild-Attributen ähneln, mithilfe des Veröffentlichungsprofils festgelegt.

Tool BESCHREIBUNG
Seite "Sicherheit", Projekt-Designer Signiert die Anwendungs- und Bereitstellungsmanifeste. Für .NET Core und .NET 5 oder höher befinden sich diese Einstellungen im Veröffentlichungsprofil.
Seite "Veröffentlichen", Projekt-Designer Generiert und bearbeitet die Anwendungs- und Bereitstellungsmanifeste für Visual Basic- und Visual C#-Anwendungen. Für .NET Core und .NET 5 oder höher befinden sich diese Einstellungen im Veröffentlichungsprofil.
Mage.exe (Manifest Generation and Editing Tool) Generiert die Anwendungs- und Bereitstellungsmanifeste für Visual Basic-, Visual C#- und Visual C++-Anwendungen.

Signiert die Anwendungs- und Bereitstellungsmanifeste und signiert sie erneut.

Kann über Batchskripts und die Eingabeaufforderung ausgeführt werden.
dotnetmage.exe (Manifest Generation and Editing Tool) Generiert die Anwendungs- und Bereitstellungsmanifeste für .NET 5- (oder höher), C#- und Visual Basic-Anwendungen. Die Verwendung entspricht Mage.exe.

Signiert die Anwendungs- und Bereitstellungsmanifeste und signiert sie erneut.

Kann über Batchskripts und die Eingabeaufforderung ausgeführt werden.
MageUI.exe (Manifest Generation and Editing Tool, grafischer Client) Generiert und bearbeitet die Anwendungs- und Bereitstellungsmanifeste.

Signiert die Anwendungs- und Bereitstellungsmanifeste und signiert sie erneut.
GenerateApplicationManifest-Aufgabe Generiert das Anwendungsmanifest.

Kann aus MSBuild ausgeführt werden. Weitere Informationen finden Sie unter MSBuild-Referenz.
GenerateDeploymentManifest-Aufgabe Generiert das Bereitstellungsmanifest.

Kann aus MSBuild ausgeführt werden. Weitere Informationen finden Sie unter MSBuild-Referenz.
SignFile-Aufgabe Signiert die Anwendungs- und Bereitstellungsmanifeste.

Kann aus MSBuild ausgeführt werden. Weitere Informationen finden Sie unter MSBuild-Referenz.
Microsoft.Build.Tasks.Deployment.ManifestUtilities Entwickeln Sie Ihre eigene Anwendung, um die Anwendungs- und Bereitstellungsmanifeste zu generieren.

Die folgende Tabelle zeigt die .NET Framework-Version, die zur 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
Chrome 3,5
Microsoft Edge 3,5