Freigeben über


ClickOnce-Bereitstellung und -Sicherheit

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

Die ClickOnce-Bereitstellung überwindet drei wichtige Probleme bei der Bereitstellung:

  • Schwierigkeiten beim Aktualisieren von Anwendungen. Wenn eine Anwendung aktualisiert wird, kann der Benutzer bei der Bereitstellung von Microsoft Windows Installer ein Update, 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 geändert wurden, werden heruntergeladen, und dann wird die vollständige aktualisierte Anwendung aus einem neuen Nebeneinanderordner neu installiert.

  • Auswirkungen auf den Computer des Benutzers. Bei der Bereitstellung von Windows Installer basieren Anwendungen häufig auf gemeinsam genutzte Komponenten mit dem Potenzial für Versionsverwaltungskonflikte; 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 eine eingeschränkte Benutzerinstallation zu. Die ClickOnce-Bereitstellung ermöglicht es nicht administrativen Benutzern, nur die für die Anwendung erforderlichen Codezugriffssicherheitsberechtigungen zu installieren und zu gewähren.

    In der Vergangenheit haben diese Probleme manchmal dazu geführt, dass Entwickler sich entscheiden, Webanwendungen anstelle von Windows-basierten Anwendungen zu erstellen, wodurch eine umfangreiche Benutzeroberfläche für eine einfache Installation opfert wird. Durch die Verwendung von Anwendungen, die mithilfe von ClickOnce bereitgestellt werden, können Sie das Beste aus beiden Technologien haben.

Was ist eine ClickOnce-Anwendung?

Eine ClickOnce-Anwendung ist eine beliebige Windows Presentation Foundation (.xbap), Windows Forms (.exe), Konsolenanwendung (.exe) oder Office-Lösung (.dll) veröffentlicht mit ClickOnce-Technologie. Sie können eine ClickOnce-Anwendung auf drei verschiedene Arten veröffentlichen: von einer Webseite, von einer Netzwerkdateifreigabe oder von älteren Medien wie einem 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 alles auf dem Computer des Endbenutzers dauerhaft installiert wird. Weitere Informationen finden Sie unter Auswählen einer ClickOnce-Bereitstellungsstrategie.

ClickOnce-Anwendungen können selbst aktualisiert werden; sie können nach neueren Versionen suchen, sobald sie verfügbar sind, und alle aktualisierten Dateien automatisch ersetzen. Der Entwickler kann das Updateverhalten angeben; Ein Netzwerkadministrator kann auch Updatestrategien steuern, z. B. die Kennzeichnung eines Updates als obligatorisch. Updates können auch vom Endbenutzer oder von einem Administrator auf eine frühere Version zurückgesetzt 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 unterbrechen. ClickOnce-Anwendungen sind eigenständig; Jede ClickOnce-Anwendung wird auf einem sicheren Benutzer-, Anwendungscache installiert und ausgeführt. ClickOnce-Anwendungen werden in den Sicherheitszonen "Internet" oder "Intranet" ausgeführt. Bei Bedarf kann die Anwendung erhöhte Sicherheitsberechtigungen anfordern. Weitere Informationen finden Sie unter Secure ClickOnce-Anwendungen.

Funktionsweise der ClickOnce-Sicherheit

Die zentrale ClickOnce-Sicherheit basiert auf Zertifikaten, Codezugriffssicherheitsrichtlinien und der ClickOnce-Vertrauensaufforderung.

Zertifikate

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

Codezugriffssicherheit

Die Codezugriffssicherheit hilft beim Einschränken des Zugriffs, den der Code auf geschützte Ressourcen hat. In den meisten Fällen können Sie die Internet- oder lokalen Intranetzonen auswählen, um die Berechtigungen einzuschränken. Verwenden Sie die Seite Security im Project Designer, um die für die Anwendung geeignete 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.

Anmerkung

In ClickOnce für .NET Core und .NET 5 oder höher wird dieses Feature nicht unterstützt. Weitere Informationen finden Sie unter ClickOnce für .NET.

ClickOnce-Vertrauensaufforderung

Wenn die Anwendung mehr 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 für die Ausführung vertrauenswürdig sind. Weitere Informationen finden Sie unter So konfigurieren Sie das Verhalten der ClickOnce-Vertrauensaufforderung.

Funktionsweise der ClickOnce-Bereitstellung

Die zentrale ClickOnce-Bereitstellungsarchitektur basiert auf zwei XML-Manifestdateien: einem Anwendungsmanifest und einem Bereitstellungsmanifest. Die Dateien werden verwendet, um zu beschreiben, wo 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. Dazu gehören die Assemblys, die Abhängigkeiten und Dateien, aus denen die Anwendung besteht, die erforderlichen Berechtigungen und der 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 das Manifestgenerierungs- und Bearbeitungstool (Mage.exe) im Windows Software Development Kit (SDK). Weitere Informationen finden Sie unter:

Das Bereitstellungsmanifest beschreibt, wie die Anwendung bereitgestellt wird. Dies schließt den Speicherort des Anwendungsmanifests und die Version der Anwendung ein, die von Clients ausgeführt werden soll.

Anmerkung

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

Nachdem es erstellt wurde, wird das Bereitstellungsmanifest an den Bereitstellungsort kopiert. Dies kann ein Webserver, eine Netzwerkdateifreigabe oder ältere Medien wie z. B. eine CD sein. Das Anwendungsmanifest und alle Anwendungsdateien werden auch an einen Bereitstellungsort kopiert, der im Bereitstellungsmanifest angegeben ist. Dies kann mit dem Bereitstellungsort identisch sein, oder es kann sich um einen anderen Speicherort handelt. 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 der Benutzer aufgefordert wird, die Installation zu bestätigen, nachdem die Installation fortgesetzt wird und die Anwendung ohne zusätzliche Intervention gestartet wird. In Fällen, in denen die Anwendung erhöhte Berechtigungen erfordert oder wenn die Anwendung nicht von einem vertrauenswürdigen Zertifikat signiert ist, fordert das Dialogfeld auch den Benutzer auf, die Berechtigung zu erteilen, bevor die Installation fortgesetzt werden kann. Obwohl ClickOnce-Installationen pro Benutzer installiert sind, kann die Berechtigungserweiterung erforderlich sein, 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 als vertrauenswürdig eingestuft werden, sodass ClickOnce-Anwendungen, die mit einem vertrauenswürdigen Zertifikat signiert sind, automatisch installiert werden können. Weitere Informationen zu vertrauenswürdigen Zertifikaten finden Sie unter Übersicht über die Bereitstellung vertrauenswürdiger Anwendungen.

Die Anwendung kann dem Menü Start des Benutzers und der Gruppe "Programme hinzufügen oder entfernen" in der Systemsteuerunghinzugefügt werden. Im Gegensatz zu anderen Bereitstellungstechnologien wird dem Programmdateien Ordner oder der Registrierung nichts hinzugefügt, und für die Installation sind keine Administratorrechte erforderlich.

Anmerkung

Es ist auch möglich zu verhindern, dass die Anwendung dem Menü Start und der Gruppe Programme hinzufügen oder entfernen hinzugefügt wird, sodass sie sich wie eine Webanwendung verhält. Weitere Informationen finden Sie unter Auswählen einer ClickOnce-Bereitstellungsstrategie.

Aktualisieren von ClickOnce-Anwendungen

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

Anmerkung

Der Veröffentlichungs-Assistent in Visual Studio kann zum Ausführen dieser Schritte verwendet werden. Für .NET Core und .NET 5+ stellt das Veröffentlichungstool die folgenden Schritte bereit.

Zusätzlich zum Bereitstellungsspeicherort enthält das Bereitstellungsmanifest auch einen Updatespeicherort (eine Webseite oder Netzwerkdateifreigabe), an den die Anwendung nach aktualisierten Versionen sucht. ClickOnce Publish-Eigenschaften werden verwendet, um anzugeben, wann und wie oft die Anwendung nach Updates suchen soll. Das Updateverhalten kann im Bereitstellungsmanifest angegeben werden, oder es kann als Benutzerauswahl auf der Benutzeroberfläche der Anwendung mithilfe der ClickOnce-APIs dargestellt 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 Das ClickOnce-Installationsprogramm anpassen, um Komponenten von Drittanbietern zusammen mit Ihrer Anwendung zu installieren. Sie müssen über das weiterverteilbare Paket (.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

In der folgenden Tabelle sind die Tools aufgeführt, mit denen Sie die Anwendungs- und Bereitstellungsmanifeste generieren, bearbeiten, signieren und erneut signieren können. Für .NET Core und .NET 5+ werden Optionen, die MSBuild-Attributen ähneln, mithilfe des Veröffentlichungsprofils festgelegt.

Werkzeug Beschreibung
Seite „Sicherheit“, Projekt-Designer Signiert die Anwendungs- und Bereitstellungsmanifeste. Für .NET Core und .NET 5+ befinden sich diese Einstellungen im Veröffentlichungsprofil.
Seite veröffentlichen, Project Designer Generiert und bearbeitet die Anwendungs- und Bereitstellungsmanifeste für Visual Basic- und Visual C#-Anwendungen. Für .NET Core und .NET 5+ befinden sich diese Einstellungen im Veröffentlichungsprofil.
Mage.exe (Manifestgenerierung und Bearbeitungstool) 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 (Manifestgenerierung und Bearbeitungstool) Generiert die Anwendungs- und Bereitstellungsmanifeste für .NET 5+ 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 (Manifestgenerierungs- und Bearbeitungstool, grafischer Client) Generiert und bearbeitet die Anwendungs- und Bereitstellungsmanifeste.

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

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

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

Kann über 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 erforderlich ist, um ClickOnce-Anwendungen in diesen Browsern zu unterstützen.

Browser .NET Framework-Version
Firefox 2.0 SP1, 3.5 SP1, 4
Chrom 3.5
Microsoft Edge 3.5