ClickOnce-Sicherheit und -BereitstellungClickOnce security and deployment

ClickOnceClickOnce ist eine Bereitstellungs Technologie, mit der Sie selbst Aktualisier Ende Windows-basierte Anwendungen erstellen können, die mit minimaler Benutzerinteraktion installiert und ausgeführt werden können.is a deployment technology that enables you to create self-updating Windows-based applications that can be installed and run with minimal user interaction. Visual StudioVisual Studio bietet vollständige Unterstützung für das Veröffentlichen und Aktualisieren von Anwendungen, die mit ClickOnce-Technologie bereitgestellt werden, C#Wenn Sie Ihre Projekte mit Visual Basic und Visual entwickelt habenprovides full support for publishing and updating applications deployed with ClickOnce technology if you have developed your projects with Visual Basic and Visual C#. Weitere Informationen zum Bereitstellen C++ von visuellen Anwendungen finden Sie unter ClickOnce C++ -Bereitstellung für visuelle Anwendungen.For information about deploying Visual C++ applications, see ClickOnce Deployment for Visual C++ Applications.

ClickOnceClickOnce Bereitstellung überschreitet drei wichtige Probleme bei der Bereitstellung:deployment overcomes three major issues in deployment:

  • Schwierigkeiten beim Aktualisieren von Anwendungen.Difficulties in updating applications. Bei der Microsoft Windows Installer-Bereitstellung kann der Benutzer jedes Mal, wenn eine Anwendung aktualisiert wird, ein Update, eine MSP-Datei installieren und auf das installierte Produkt anwenden. mit ClickOnceClickOnce-Bereitstellung können Sie Updates automatisch bereitstellen.With Microsoft Windows Installer deployment, whenever an application is updated, the user can install an update, an msp file, and apply it to the installed product; with ClickOnceClickOnce deployment, you can provide updates automatically. Nur die Teile der Anwendung, die geändert wurden, werden heruntergeladen, und anschließend wird die vollständig aktualisierte Anwendung aus einem neuen parallelen Ordner neu installiert.Only those parts of the application that have changed are downloaded, and then the full, updated application is reinstalled from a new side-by-side folder.

  • Auswirkung auf den Computer des Benutzers.Impact to the user's computer. Bei der Windows Installer-Bereitstellung basieren Anwendungen häufig auf gemeinsam genutzten Komponenten, mit dem Potenzial von Versions Konflikten. bei der ClickOnceClickOnce Bereitstellung ist jede Anwendung eigenständig und kann andere Anwendungen nicht beeinträchtigen.With Windows Installer deployment, applications often rely on shared components, with the potential for versioning conflicts; with ClickOnceClickOnce deployment, each application is self-contained and cannot interfere with other applications.

  • Sicherheitsberechtigungen.Security permissions. Windows Installer Bereitstellung erfordert administrative Berechtigungen und ermöglicht nur eine eingeschränkte Benutzer Installation. mit ClickOnceClickOnce-Bereitstellung können Benutzer ohne Administratorrechte nur die Berechtigungen für die Code Zugriffssicherheit installieren, die für die Anwendung erforderlich sind.Windows Installer deployment requires administrative permissions and allows only limited user installation; ClickOnceClickOnce deployment enables non-administrative users to install and grants only those Code Access Security permissions necessary for the application.

    In der Vergangenheit haben diese Probleme manchmal dazu geführt, dass Entwickler Webanwendungen anstelle von Windows-basierten Anwendungen erstellen konnten, sodass Sie eine umfassende Benutzeroberfläche für eine einfache Installation aufopferungs.In the past, these issues sometimes caused developers to decide to create Web applications instead of Windows-based applications, sacrificing a rich user interface for ease of installation. Durch die Verwendung von Anwendungen, die mit ClickOnceClickOncebereitgestellt werden, können Sie über das Beste beider Technologien verfügen.By using applications deployed using ClickOnceClickOnce, you can have the best of both technologies.

Was ist eine ClickOnce-Anwendung?What is a ClickOnce application?

Eine ClickOnceClickOnce Anwendung ist jede Windows Presentation Foundation ( . XBAP), Windows Forms ( . exe), Konsolenanwendung ( . exe) oder eine Office-Projekt Mappe ( . dll), die mit ClickOnceClickOnce Technologie veröffentlicht wurde.A ClickOnceClickOnce application is any Windows Presentation Foundation (.xbap), Windows Forms (.exe), console application (.exe), or Office solution (.dll) published using ClickOnceClickOnce technology. Sie können eine ClickOnceClickOnce Anwendung auf drei verschiedene Arten veröffentlichen: über eine Webseite, über eine Netzwerkdatei Freigabe oder über Medien wie eine CD-ROM.You can publish a ClickOnceClickOnce application in three different ways: from a Web page, from a network file share, or from media such as a CD-ROM. Eine ClickOnceClickOnce-Anwendung kann auf dem Computer des Endbenutzers installiert und lokal ausgeführt werden, auch wenn der Computer offline ist, oder Sie kann in einem reinen Online Modus ausgeführt werden, ohne dass auf dem Computer des Endbenutzers eine permanente Installation erfolgt.A ClickOnceClickOnce application can be installed on an end user's computer and run locally even when the computer is offline, or it can be run in an online-only mode without permanently installing anything on the end user's computer. Weitere Informationen finden Sie unter Auswählen einer Strategie für die ClickOnce-Bereitstellung.For more information, see Choose a ClickOnce deployment strategy.

ClickOnceClickOnce Anwendungen können selbst aktualisiert werden. Sie können nach neueren Versionen suchen, sobald Sie verfügbar werden, und automatisch alle aktualisierten Dateien ersetzen.applications can be self-updating; they can check for newer versions as they become available and automatically replace any updated files. Der Entwickler kann das Aktualisierungsverhalten festlegen. Der Netzwerkadministrator kann ebenfalls Aktualisierungsstrategien steuern und eine Aktualisierung z.B. als obligatorisch kennzeichnen.The developer can specify the update behavior; a network administrator can also control update strategies, for example, marking an update as mandatory. Updates können auch vom Endbenutzer oder von einem Administrator auf eine frühere Version zurückgesetzt werden.Updates can also be rolled back to an earlier version by the end user or by an administrator. Weitere Informationen finden Sie unter Auswählen einer Strategie für die ClickOnce-Aktualisierung.For more information, see Choose a ClickOnce update strategy.

Da ClickOnceClickOnce Anwendungen isoliert sind, kann das Installieren oder Ausführen einer ClickOnceClickOnce Anwendung vorhandene Anwendungen nicht unterbrechen.Because ClickOnceClickOnce applications are isolated, installing or running a ClickOnceClickOnce application cannot break existing applications. ClickOnceClickOnce Anwendungen sind eigenständig. jede ClickOnceClickOnce Anwendung wird in einem sicheren Cache pro Benutzer und pro Anwendung installiert und ausgeführt.applications are self-contained; each ClickOnceClickOnce application is installed to and run from a secure per-user, per-application cache. ClickOnceClickOnce Anwendungen werden im Internet oder in intranetsicherheitszonen ausgeführt.applications run in the Internet or Intranet security zones. Falls notwendig, kann die Anwendung erhöhte Sicherheitsberechtigungen anfordern.If necessary, the application can request elevated security permissions. Weitere Informationen finden Sie unter sichere ClickOnce-Anwendungen.For more information, see Secure ClickOnce applications.

Funktionsweise der ClickOnce-SicherheitHow ClickOnce security works

Der Kern ClickOnceClickOnce Sicherheit basiert auf Zertifikaten, Richtlinien für die Code Zugriffssicherheit und der ClickOnce-Vertrauensstellungs Aufforderung.The core ClickOnceClickOnce security is based on certificates, code access security policies, and the ClickOnce trust prompt.

ZertifikateCertificates

Authenticode-Zertifikate werden verwendet, um die Echtheit des Herausgebers der Anwendung zu überprüfen.Authenticode certificates are used to verify the authenticity of the application's publisher. Durch die Verwendung von Authenticode für die Anwendungs Bereitstellung hilft ClickOnce dabei, ein schädliches Programm daran zu hindern, sich selbst als ein legitimer Programm aus einer etablierten vertrauenswürdigen Quelle darzustellen.By using Authenticode for application deployment, ClickOnce helps prevent a harmful program from portraying itself as a legitimate program coming from an established, trustworthy source. Optional können Zertifikate auch zum Signieren der Anwendungs-und Bereitstellungs Manifeste verwendet werden, um nachzuweisen, dass die Dateien nicht manipuliert wurden.Optionally, certificates can also be used to sign the application and deployment manifests to prove that the files have not been tampered with. Weitere Informationen finden Sie unter ClickOnce und Authenticode.For more information, see ClickOnce and Authenticode. Zertifikate können auch verwendet werden, um Client Computer so zu konfigurieren, dass Sie eine Liste der vertrauenswürdigen Herausgeber aufweisen.Certificates can also be used to configure client computers to have a list of trusted publishers. Wenn eine Anwendung von einem vertrauenswürdigen Herausgeber stammt, kann Sie ohne Benutzereingriff installiert werden.If an application comes from a trusted publisher, it can be installed without any user interaction. Weitere Informationen finden Sie unter Überblick über die Bereitstellung vertrauenswürdiger Anwendungen.For more information, see Trusted application deployment overview.

CodezugriffssicherheitCode access security

Mit der Code Zugriffssicherheit wird der Zugriff von Code auf geschützte Ressourcen beschränkt.Code access security helps limit the access that code has to protected resources. In den meisten Fällen können Sie die Zonen "Internet" oder "Lokales Intranet" auswählen, um die Berechtigungen einzuschränken.In most cases, you can choose the Internet or Local Intranet zones to limit the permissions. Verwenden Sie die Seite Sicherheit im Projekt-Designer , um die für die Anwendung geeignete Zone anzufordern.Use the Security page in the ProjectDesigner to request the zone appropriate for the application. Sie können auch Anwendungen mit eingeschränkten Berechtigungen debuggen, um die Endbenutzer Funktionen zu emulieren.You can also debug applications with restricted permissions to emulate the end-user experience. Weitere Informationen finden Sie unter Code Access Security for ClickOnce Applications (Codezugriffssicherheit für ClickOnce-Anwendungen).For more information, see Code access security for ClickOnce applications.

ClickOnce-VertrauensaufforderungClickOnce trust prompt

Wenn die Anwendung mehr Berechtigungen anfordert, als die Zone zulässt, kann der Endbenutzer aufgefordert werden, eine Entscheidung über die Vertrauenswürdigkeit zu treffen.If the application requests more permissions than the zone allows, the end user can be prompted to make a trust decision. Der Endbenutzer kann entscheiden, ob ClickOnce-Anwendungen, wie z. b. Windows Forms Anwendungen, Windows Presentation Foundation Anwendungen, Konsolen Anwendungen, XAML-Browser Anwendungen und Office-Projektmappen vertrauenswürdig sind.The end user can decide if ClickOnce applications such as Windows Forms applications, Windows Presentation Foundation applications, console applications, XAML browser applications, and Office solutions are trusted to run. Weitere Informationen finden Sie unter Gewusst wie: Konfigurieren des Verhaltens der ClickOnce-Vertrauens Aufforderung.For more information, see How to: Configure the ClickOnce trust prompt behavior.

Wie funktioniert die ClickOnce-Bereitstellung?How ClickOnce deployment works

Die Kern ClickOnceClickOnce Bereitstellungs Architektur basiert auf zwei XML-Manifest-Dateien: einem Anwendungs Manifest und einem Bereitstellungs Manifest.The core ClickOnceClickOnce deployment architecture is based on two XML manifest files: an application manifest and a deployment manifest. Die Dateien werden verwendet, um zu beschreiben, wo die ClickOnce-Anwendungen installiert werden, wie Sie aktualisiert werden und wann Sie aktualisiert werden.The files are used to describe where the ClickOnce applications are installed from, how they are updated, and when they are updated.

Veröffentlichen von ClickOnce-AnwendungenPublish ClickOnce applications

Das Anwendungs Manifest beschreibt die Anwendung selbst.The application manifest describes the application itself. Dies schließt die Assemblys, die Abhängigkeiten und Dateien aus, aus denen die Anwendung besteht, die erforderlichen Berechtigungen und den Speicherort, an dem Updates verfügbar sein werden.This includes the assemblies, the dependencies and files that make up the application, the required permissions, and the location where updates will be available. Der Anwendungsentwickler Ersteller das Anwendungs Manifest mithilfe des Veröffentlichungs-Assistenten in Visual Studio oder der Manifest Generation and Editing Tool ("Mage. exe") im Windows Software Development Kit (SDK)Windows Software Development Kit (SDK).The application developer authors the application manifest by using the Publish Wizard in Visual Studio or the Manifest Generation and Editing Tool (Mage.exe) in the Windows Software Development Kit (SDK)Windows Software Development Kit (SDK). Weitere Informationen finden Sie unter Gewusst wie: Veröffentlichen einer ClickOnce-Anwendung mit dem Webpublishing-Assistenten.For more information, see How to: Publish a ClickOnce application using the Publish Wizard.

In dem Bereitstellungsmanifest wird die Bereitstellung der Anwendung beschrieben.The deployment manifest describes how the application is deployed. Dies umfasst den Speicherort des Anwendungs Manifests und die Version der Anwendung, die von Clients ausgeführt werden soll.This includes the location of the application manifest, and the version of the application that clients should run.

Bereitstellen von ClickOnce-AnwendungenDeploy ClickOnce applications

Nachdem Sie erstellt wurde, wird das Bereitstellungs Manifest an den Bereitstellungs Speicherort kopiert.After it is created, the deployment manifest is copied to the deployment location. Hierbei kann es sich um einen Webserver, eine Dateifreigabe im Netzwerk oder einen Datenträger wie eine CD handeln.This can be a Web server, network file share, or media such as a CD. Das Anwendungs Manifest und alle Anwendungs Dateien werden ebenfalls an einen Bereitstellungs Speicherort kopiert, der im Bereitstellungs Manifest angegeben ist.The application manifest and all the application files are also copied to a deployment location that is specified in the deployment manifest. Dabei kann es sich um denselben Bereitstellungsspeicherort oder einen anderen Speicherort handeln.This can be the same as the deployment location, or it can be a different location. Wenn Sie den Webpublishing-Assistenten in Visual Studio verwenden, werden die Kopiervorgänge automatisch ausgeführt.When using the Publish Wizard in Visual Studio, the copy operations are performed automatically.

Installieren von ClickOnce-AnwendungenInstall ClickOnce applications

Nachdem Sie am Bereitstellungs Speicherort bereitgestellt wurde, können Endbenutzer die Anwendung herunterladen und installieren, indem Sie auf ein Symbol klicken, das die Bereitstellungs Manifest-Datei auf einer Webseite oder in einem Ordner darstellt.After it is deployed to the deployment location, end users can download and install the application by clicking an icon representing the deployment manifest file on a Web page or in a folder. In den meisten Fällen wird dem Endbenutzer ein einfaches Dialogfeld angezeigt, in dem der Benutzer aufgefordert wird, die Installation zu bestätigen. Danach wird die Installation fortgesetzt, und die Anwendung wird ohne zusätzlichen Eingriff gestartet.In most cases, the end user is presented with a simple dialog box asking the user to confirm installation, after which installation proceeds and the application is started without additional intervention. In Fällen, in denen die Anwendung erhöhte Berechtigungen erfordert, oder wenn die Anwendung nicht von einem vertrauenswürdigen Zertifikat signiert ist, wird der Benutzer im Dialogfeld ebenfalls aufgefordert, die Berechtigung zu erteilen, bevor die Installation fortgesetzt werden kann.In cases where the application requires elevated permissions or if the application is not signed by a trusted certificate, the dialog box also asks the user to grant permission before the installation can continue. Obwohl ClickOnce-Installationen pro Benutzer erfolgen, ist möglicherweise eine Berechtigungs Erweiterung erforderlich, wenn erforderliche Komponenten vorhanden sind, für die Administratorrechte erforderlich sind.Though ClickOnce installs are per-user, permission elevation may be required if there are prerequisites that require administrator privileges. Weitere Informationen zu erweiterten Berechtigungen finden Sie unter Sichern von ClickOnce-Anwendungen.For more information about elevated permissions, see Securing ClickOnce applications.

Zertifikate können auf Computer-oder Unternehmensebene als vertrauenswürdig eingestuft werden, damit ClickOnce-Anwendungen, die mit einem vertrauenswürdigen Zertifikat signiert sind, unbeaufsichtigt installiert werden könnenCertificates can be trusted at the machine or enterprise level, so that ClickOnce applications signed with a trusted certificate can install silently. Weitere Informationen zu vertrauenswürdigen Zertifikaten finden Sie unter Übersicht über die Bereitstellung vertrauenswürdiger Anwendungen.For more information about trusted certificates, see Trusted application deployment overview.

Die Anwendung kann dem Startmenü des Benutzers und der Gruppe "Software" in der Systemsteuerunghinzugefügt werden.The application can be added to the user's Start menu and to the Add or Remove Programs group in the Control Panel. Anders als bei anderen Bereitstellungs Technologien wird dem Ordner " Programme " oder der Registrierung nichts hinzugefügt, und für die Installation sind keine Administratorrechte erforderlich.Unlike other deployment technologies, nothing is added to the Program Files folder or the registry, and no administrative rights are required for installation

Note

Es ist auch möglich, zu verhindern, dass die Anwendung dem Startmenü hinzugefügt und die Software Gruppe hinzugefügt oder entfernt wird, sodass Sie sich wie eine Webanwendung verhält.It is also possible to prevent the application from being added to the Start menu and Add or Remove Programs group, in effect making it behave like a Web application. Weitere Informationen finden Sie unter Auswählen einer Strategie für die ClickOnce-Bereitstellung.For more information, see Choose a ClickOnce deployment strategy.

Aktualisieren von ClickOnce-AnwendungenUpdate ClickOnce applications

Wenn die Anwendungsentwickler eine aktualisierte Version der Anwendung erstellen, generieren Sie ein neues Anwendungs Manifest und kopieren Dateien an einen Bereitstellungs Speicherort – in der Regel ein gleich geordneter Ordner in den ursprünglichen Anwendungs Bereitstellungs Ordner.When the application developers create an updated version of the application, they generate a new application manifest and copy files to a deployment location—usually a sibling folder to the original application deployment folder. Der Administrator aktualisiert das Bereitstellungs Manifest so, dass es auf den Speicherort der neuen Version der Anwendung verweist.The administrator updates the deployment manifest to point to the location of the new version of the application.

Note

Der Veröffentlichungs-Assistent in Visual Studio kann verwendet werden, um diese Schritte auszuführen.The Publish Wizard in Visual Studio can be used to perform these steps.

Neben dem Bereitstellungs Speicherort enthält das Bereitstellungs Manifest auch einen Update Speicherort (eine Webseite oder eine Netzwerkdatei Freigabe), bei dem die Anwendung auf aktualisierte Versionen prüft.In addition to the deployment location, the deployment manifest also contains an update location (a Web page or network file share) where the application checks for updated versions. ClickOnceClickOnce Veröffentlichungs Eigenschaften werden verwendet, um anzugeben, wann und wie oft die Anwendung nach Updates suchen soll.Publish properties are used to specify when and how often the application should check for updates. Das Aktualisierungs Verhalten kann im Bereitstellungs Manifest angegeben werden, oder es kann mithilfe der ClickOnceClickOnce-APIs in der Benutzeroberfläche der Anwendung als Benutzer Auswahl angezeigt werden.Update behavior can be specified in the deployment manifest, or it can be presented as user choices in the application's user interface by means of the ClickOnceClickOnce APIs. 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.In addition, Publish properties can be employed to make updates mandatory or to roll back to an earlier version. Weitere Informationen finden Sie unter Auswählen einer Strategie für die ClickOnce-Aktualisierung.For more information, see Choosing a ClickOnce update strategy.

Installationsprogramme von DrittanbieternThird party installers

Sie können den ClickOnce-Installer so anpassen, dass Komponenten von Drittanbietern zusammen mit der Anwendung installiert werden.You can customize your ClickOnce installer to install third-party components along with your application. Sie müssen über das verteilbare Paket (exe-oder MSI-Datei) verfügen und das Paket mit einem sprach neutralen Produkt Manifest und einem sprachspezifischen Paket Manifest beschreiben.You must have the redistributable package (.exe or .msi file) and describe the package with a language-neutral product manifest and a language-specific package manifest. Weitere Informationen finden Sie unter Erstellen von Bootstrapperpaketen.For more information, see Creating bootstrapper packages.

ClickOnce-ToolsClickOnce tools

In der folgenden Tabelle sind die Tools aufgeführt, die Sie zum generieren, bearbeiten, Signieren und erneuten Signieren der Anwendungs-und Bereitstellungs Manifeste verwenden können.The following table shows the tools that you can use to generate, edit, sign, and re-sign the application and deployment manifests.

ToolTool BeschreibungDescription
Seite „Sicherheit“, Projekt-DesignerSecurity Page, Project Designer Signiert die Anwendungs-und Bereitstellungs Manifeste.Signs the application and deployment manifests.
Seite „Veröffentlichen“, Projekt-DesignerPublish Page, Project Designer Generiert und bearbeitet die Anwendungs-und Bereitstellungs Manifeste für Visual Basic C# und visuelle Anwendungen.Generates and edits the application and deployment manifests for Visual Basic and Visual C# applications.
Mage.exe (Manifest Generation and Editing Tool)Mage.exe (Manifest Generation and Editing Tool) Generiert die Anwendungs-und Bereitstellungs Manifeste für C#Visual Basic, visuelle C++ und visuelle Anwendungen.Generates the application and deployment manifests for Visual Basic, Visual C#, and Visual C++ applications.

Signiert und signiert die Anwendungs-und Bereitstellungs Manifeste neu.Signs and re-signs the application and deployment manifests.

Kann in Batch Skripts und an der Eingabeaufforderung ausgeführt werden.Can be run from batch scripts and the command prompt.
MageUI.exe (Manifest Generation and Editing Tool, grafischer Client)MageUI.exe (Manifest Generation and Editing Tool, Graphical Client) Generiert und bearbeitet die Anwendungs-und Bereitstellungs Manifeste.Generates and edits the application and deployment manifests.

Signiert und signiert die Anwendungs-und Bereitstellungs Manifeste neu.Signs and re-signs the application and deployment manifests.
GenerateApplicationManifest-AufgabeGenerateApplicationManifest task Generiert das Anwendungs Manifest.Generates the application manifest.

Kann von MSBuild ausgeführt werden.Can be run from MSBuild. Weitere Informationen finden Sie unter MSBuild-Referenz.For more information, see MSBuild reference.
GenerateDeploymentManifest-AufgabeGenerateDeploymentManifest task Generiert das Bereitstellungs Manifest.Generates the deployment manifest.

Kann von MSBuild ausgeführt werden.Can be run from MSBuild. Weitere Informationen finden Sie unter MSBuild-Referenz.For more information, see MSBuild reference.
SignFile-AufgabeSignFile task Signiert die Anwendungs-und Bereitstellungs Manifeste.Signs the application and deployment manifests.

Kann von MSBuild ausgeführt werden.Can be run from MSBuild. Weitere Informationen finden Sie unter MSBuild-Referenz.For more information, see MSBuild reference.
Microsoft. Build. Tasks. Deployment. ManifestUtilitiesMicrosoft.Build.Tasks.Deployment.ManifestUtilities Entwickeln Sie Ihre eigene Anwendung, um die Anwendungs-und Bereitstellungs Manifeste zu generieren.Develop your own application to generate the application and deployment manifests.

Die folgende Tabelle zeigt die .NET Framework Version, die zur Unterstützung von ClickOnce-Anwendungen in diesen Browsern erforderlich ist.The following table shows the .NET Framework version required to support ClickOnce applications in these browsers.

BrowserBrowser .NET Framework-Version.NET Framework version
Internet ExplorerInternet Explorer 2.0, 3.0, 3.5, 3.5 SP1, 42.0, 3.0, 3.5, 3.5 SP1, 4
FirefoxFirefox 2.0 SP1, 3.5 SP1, 42.0 SP1, 3.5 SP1, 4

Siehe auchSee also