Seguridad e implementación ClickOnceClickOnce security and deployment

ClickOnceClickOnce es una tecnología de implementación que le permite crear aplicaciones de actualización automática basado en Windows que se pueden instalar y ejecutar con interacción mínima del usuario. is a deployment technology that enables you to create self-updating Windows-based applications that can be installed and run with minimal user interaction. Programa para la mejoraVisual Studio proporciona compatibilidad completa para publicar y actualizar las aplicaciones implementadas con la tecnología ClickOnce si ha desarrollado sus proyectos con Visual Basic y Visual C#. provides full support for publishing and updating applications deployed with ClickOnce technology if you have developed your projects with Visual Basic and Visual C#. Para obtener información sobre cómo implementar aplicaciones de Visual C++, vea implementación de ClickOnce para aplicaciones de Visual C++.For information about deploying Visual C++ applications, see ClickOnce Deployment for Visual C++ Applications.

ClickOnceClickOnce la implementación supera tres problemas principales de implementación: deployment overcomes three major issues in deployment:

  • Dificultades para actualizar las aplicaciones.Difficulties in updating applications. Con la implementación de Microsoft Windows Installer, siempre que se actualiza una aplicación, el usuario puede instalar una actualización, un archivo msp y se aplican para el producto instalado; con ClickOnceClickOnce implementación, puede proporcionar actualizaciones automáticamente.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. Se descargan sólo aquellas partes de la aplicación que han cambiado y, a continuación, se vuelve a instalar la aplicación completa y actualizada de una nueva carpeta en paralelo.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.

  • Impacto en el equipo del usuario.Impact to the user's computer. Con la implementación de Windows Installer, las aplicaciones normalmente utilizan componentes compartidos, con la posibilidad de conflictos de control de versiones; con ClickOnceClickOnce implementación, cada aplicación es independiente y no interfiere con otras aplicaciones.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.

  • Permisos de seguridad.Security permissions. Implementación de Windows Installer requiere permisos administrativos y permite sólo la instalación de usuario limitada; ClickOnceClickOnce implementación permite a los usuarios sin derechos administrativos instalar y concede sólo los permisos de seguridad de acceso del código necesarios para la aplicación.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.

    En el pasado, estos problemas causados a veces, los desarrolladores a crear aplicaciones Web en lugar de aplicaciones basadas en Windows, tener que sacrificar una interfaz de usuario enriquecida para facilitar la instalación.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. Mediante el uso de las aplicaciones implementadas mediante ClickOnceClickOnce, puede tener el mejor de ambas tecnologías.By using applications deployed using ClickOnceClickOnce, you can have the best of both technologies.

¿Qué es una aplicación ClickOnce?What is a ClickOnce application?

Un ClickOnceClickOnce aplicación es cualquier Windows Presentation Foundation (.xbap), Windows Forms (.exe), aplicación de consola (.exe), o una solución de Office (.dll) publicada utilizando ClickOnceClickOnce tecnología.A ClickOnceClickOnce application is any Windows Presentation Foundation (.xbap), Windows Forms (.exe), console application (.exe), or Office solution (.dll) published using ClickOnceClickOnce technology. Puede publicar un ClickOnceClickOnce aplicación de tres maneras diferentes: desde una página Web, desde un recurso compartido de red o desde medios, como un 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. Un ClickOnceClickOnce aplicación puede ser instalada en el equipo de un usuario final y ejecutar localmente incluso cuando el equipo está sin conexión o se puede ejecutar en un modo de solo en línea sin instalar nada de forma permanente en el equipo del usuario final.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. Para obtener más información, consulte elegir una estrategia de implementación de ClickOnce.For more information, see Choose a ClickOnce deployment strategy.

ClickOnceClickOnce las aplicaciones se pueden actualizar automáticamente; se buscan versiones más recientes cuando estén disponibles y reemplazar automáticamente los archivos actualizados. applications can be self-updating; they can check for newer versions as they become available and automatically replace any updated files. El desarrollador puede especificar el comportamiento de actualización; También puede controlar un administrador de red estrategias de actualización, por ejemplo, marcar una actualización como obligatoria.The developer can specify the update behavior; a network administrator can also control update strategies, for example, marking an update as mandatory. Las actualizaciones también se revierte a una versión anterior por el usuario final o un administrador.Updates can also be rolled back to an earlier version by the end user or by an administrator. Para obtener más información, consulte elegir una estrategia de actualización de ClickOnce.For more information, see Choose a ClickOnce update strategy.

Dado que ClickOnceClickOnce las aplicaciones están aisladas, instalar o ejecutar un ClickOnceClickOnce aplicación no puede interrumpir las aplicaciones existentes.Because ClickOnceClickOnce applications are isolated, installing or running a ClickOnceClickOnce application cannot break existing applications. ClickOnceClickOnce las aplicaciones son independientes; cada ClickOnceClickOnce aplicación se instala para y ejecutar desde un seguro caché por usuario, por aplicación. applications are self-contained; each ClickOnceClickOnce application is installed to and run from a secure per-user, per-application cache. ClickOnceClickOnce las aplicaciones se ejecutan en las zonas de seguridad de Internet o Intranet. applications run in the Internet or Intranet security zones. Si es necesario, la aplicación puede solicitar permisos de seguridad con privilegios elevados.If necessary, the application can request elevated security permissions. Para obtener más información, consulte aplicaciones ClickOnce Secure.For more information, see Secure ClickOnce applications.

Cómo funciona la seguridad de ClickOnceHow ClickOnce security works

El núcleo ClickOnceClickOnce se basa en certificados, las directivas de seguridad de acceso de código y el aviso de confianza de ClickOnce.The core ClickOnceClickOnce security is based on certificates, code access security policies, and the ClickOnce trust prompt.

CertificadosCertificates

Certificados de Authenticode se usan para comprobar la autenticidad del publicador de la aplicación.Authenticode certificates are used to verify the authenticity of the application's publisher. Mediante el uso de Authenticode para la implementación de la aplicación, ClickOnce le ayuda a impedir que un programa dañino creado por presente como un programa legítimo procedente de una fuente de confianza establecida.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. Si lo desea, también se pueden usar certificados para firmar la aplicación y los manifiestos de implementación para demostrar que los archivos no se han alterado.Optionally, certificates can also be used to sign the application and deployment manifests to prove that the files have not been tampered with. Para obtener más información, consulte ClickOnce y Authenticode.For more information, see ClickOnce and Authenticode. Los certificados también pueden utilizarse para configurar equipos cliente para tener una lista de editores de confianza.Certificates can also be used to configure client computers to have a list of trusted publishers. Si una aplicación procede de un editor de confianza, se puede instalar sin ninguna interacción del usuario.If an application comes from a trusted publisher, it can be installed without any user interaction. Para obtener más información, consulte información general sobre la implementación de aplicaciones de confianza.For more information, see Trusted application deployment overview.

Seguridad de acceso del códigoCode access security

Secrity de acceso del código ayuda a limitar el acceso del código a los recursos protegidos.Code access secrity helps limit the access that code has to protected resources. En la mayoría de los casos, puede elegir las zonas de Internet o Intranet Local para limitar los permisos.In most cases, you can choose the Internet or Local Intranet zones to limit the permissions. Use la seguridad página en el ProjectDesigner para solicitar la zona correspondiente a la aplicación.Use the Security page in the ProjectDesigner to request the zone appropriate for the application. También puede depurar las aplicaciones con permisos restringidos para emular la experiencia del usuario final.You can also debug applications with restricted permissions to emulate the end-user experience. Para más información, vea Seguridad de acceso del código para aplicaciones ClickOnce.For more information, see Code access security for ClickOnce applications.

Aviso de confianza de ClickOnceClickOnce trust prompt

Si la aplicación solicita más permisos que permite que la zona, se puede solicitar al usuario final para tomar una decisión de confianza.If the application requests more permissions than the zone allows, the end user can be prompted to make a trust decision. El usuario final puede decidir si las aplicaciones ClickOnce, como las aplicaciones de Windows Forms, aplicaciones de Windows Presentation Foundation, las aplicaciones de consola, aplicaciones de explorador XAML y soluciones de Office son de confianza.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. Para obtener más información, consulte Cómo: configurar el comportamiento del mensaje de confianza de ClickOnce.For more information, see How to: Configure the ClickOnce trust prompt behavior.

Cómo funciona la implementación de ClickOnceHow ClickOnce deployment works

El núcleo ClickOnceClickOnce arquitectura de implementación se basa en dos archivos de manifiesto XML: un manifiesto de aplicación y un manifiesto de implementación.The core ClickOnceClickOnce deployment architecture is based on two XML manifest files: an application manifest and a deployment manifest. Los archivos se utilizan para describir dónde se instalan las aplicaciones ClickOnce desde, cómo se actualizan y cuando se actualizan.The files are used to describe where the ClickOnce applications are installed from, how they are updated, and when they are updated.

Publicar aplicaciones ClickOncePublish ClickOnce applications

El manifiesto de aplicación describe la propia aplicación.The application manifest describes the application itself. Esto incluye los ensamblados, las dependencias y los archivos que componen la aplicación, los permisos necesarios y la ubicación dónde estarán disponibles las actualizaciones.This includes the assemblies, the dependencies and files that make up the application, the required permissions, and the location where updates will be available. El desarrollador de aplicaciones crea el manifiesto de aplicación mediante el Asistente para publicar en Visual Studio o Manifest Generation and Editing Tool (Mage.exe) en el Kit de desarrollo de software de Windows (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 Kit de desarrollo de software de Windows (SDK)Windows Software Development Kit (SDK). Para obtener más información, consulte Cómo: publicar una aplicación ClickOnce mediante el Asistente para publicación.For more information, see How to: Publish a ClickOnce application using the Publish Wizard.

El manifiesto de implementación describe cómo se implementa la aplicación.The deployment manifest describes how the application is deployed. Esto incluye la ubicación del manifiesto de aplicación y la versión de la aplicación que los clientes deben ejecutar.This includes the location of the application manifest, and the version of the application that clients should run.

Implementar aplicaciones con ClickOnceDeploy ClickOnce applications

Después de crearlo, el manifiesto de implementación se copia en la ubicación de implementación.After it is created, the deployment manifest is copied to the deployment location. Puede tratarse de un servidor Web, recurso compartido de red o medios como un CD.This can be a Web server, network file share, or media such as a CD. El manifiesto de aplicación y todos los archivos de aplicación también se copian en una ubicación de implementación que se especifica en el manifiesto de implementación.The application manifest and all the application files are also copied to a deployment location that is specified in the deployment manifest. Esto puede ser la misma que la ubicación de implementación, o puede ser una ubicación diferente.This can be the same as the deployment location, or it can be a different location. Cuando se usa el Asistente para publicación en Visual Studio, las operaciones de copia se realizan automáticamente.When using the Publish Wizard in Visual Studio, the copy operations are performed automatically.

Instalar las aplicaciones ClickOnceInstall ClickOnce applications

Una vez que se implementa en la ubicación de implementación, los usuarios finales puede descargar e instalar la aplicación, haga clic en un icono que representa el archivo de manifiesto de implementación en una página Web o en una carpeta.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. En la mayoría de los casos, el usuario final se presentará un cuadro de diálogo simple que pide al usuario que confirme la instalación, tras el cual la instalación continúa y la aplicación se inicia sin intervención adicional.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. En casos donde la aplicación requiere permisos elevados o si la aplicación no está firmada por un certificado de confianza, el cuadro de diálogo también le pide al usuario que conceda permiso para que pueda continuar la instalación.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. Aunque las instalaciones de ClickOnce son por usuario, puede requerir elevación de permisos si hay requisitos previos que requieren privilegios de administrador.Though ClickOnce installs are per-user, permission elevation may be required if there are prerequisites that require administrator privileges. Para obtener más información sobre permisos elevados, consulte aplicaciones ClickOnce protección.For more information about elevated permissions, see Securing ClickOnce applications.

Los certificados se pueden confiar en el nivel de equipo o de empresa, para que las aplicaciones ClickOnce firmadas con un certificado de confianza se pueden instalar en modo silencioso.Certificates can be trusted at the machine or enterprise level, so that ClickOnce applications signed with a trusted certificate can install silently. Para obtener más información acerca de los certificados de confianza, consulte información general sobre la implementación de aplicaciones de confianza.For more information about trusted certificates, see Trusted application deployment overview.

Se puede agregar la aplicación para el usuario iniciar menú y a la agregar o quitar programas grupo en el Panel de Control.The application can be added to the user's Start menu and to the Add or Remove Programs group in the Control Panel. A diferencia de otras tecnologías de implementación, se agrega nada a la archivos de programa carpeta o el registro y sin derechos administrativos son necesarios para la instalaciónUnlike other deployment technologies, nothing is added to the Program Files folder or the registry, and no administrative rights are required for installation

Nota

También es posible impedir que la aplicación que se va a agregar a la iniciar menú y agregar o quitar programas grupo, en efecto lo que se comportan como una aplicación Web.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. Para obtener más información, consulte elegir una estrategia de implementación de ClickOnce.For more information, see Choose a ClickOnce deployment strategy.

Actualizar las aplicaciones ClickOnceUpdate ClickOnce applications

Cuando los desarrolladores de aplicaciones crean una versión actualizada de la aplicación, genera un nuevo manifiesto de aplicación y copiar archivos en una ubicación de implementación, normalmente una carpeta del mismo nivel en la carpeta de implementación de aplicación original.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. El administrador actualiza el manifiesto de implementación para que apunte a la ubicación de la nueva versión de la aplicación.The administrator updates the deployment manifest to point to the location of the new version of the application.

Nota

El Asistente para publicación en Visual Studio puede utilizarse para realizar estos pasos.The Publish Wizard in Visual Studio can be used to perform these steps.

Además de la ubicación de implementación, el manifiesto de implementación también contiene una ubicación de actualización (una página Web o red recurso compartido de archivos), donde la aplicación comprueba las versiones actualizadas.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 Publicar propiedades se utilizan para especificar cuándo y con qué frecuencia debe buscar actualizaciones la aplicación. Publish properties are used to specify when and how often the application should check for updates. Se puede especificar el comportamiento de actualización en el manifiesto de implementación, o se puede presentar como opciones del usuario en la interfaz de usuario de la aplicación por medio de la ClickOnceClickOnce API.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. Además, publicar propiedades se pueden emplear para realizar las actualizaciones obligatorias o revertir a una versión anterior.In addition, Publish properties can be employed to make updates mandatory or to roll back to an earlier version. Para obtener más información, consulte elegir una estrategia de actualización de ClickOnce.For more information, see Choosing a ClickOnce update strategy.

Instaladores de tercerosThird party installers

Puede personalizar el instalador de ClickOnce para instalar componentes de terceros junto con la aplicación.You can customize your ClickOnce installer to install third-party components along with your application. Debe tener el paquete redistribuible (archivo .exe o .msi) y describen el paquete con un manifiesto de producto independiente del idioma y un manifiesto del paquete de idioma específico.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. Para obtener más información, consulte crear paquetes de arranque.For more information, see Creating bootstrapper packages.

Herramientas de ClickOnceClickOnce tools

La siguiente tabla muestra las herramientas que puede usar para generar, editar, inicie sesión y volver a firmar los manifiestos de aplicación e implementación.The following table shows the tools that you can use to generate, edit, sign, and re-sign the application and deployment manifests.

HerramientaTool DescripciónDescription
Página Seguridad, Diseñador de proyectosSecurity Page, Project Designer Signos de los manifiestos de aplicación e implementación.Signs the application and deployment manifests.
Panel Publicar, Diseñador de proyectosPublish Page, Project Designer Genera y edita los manifiestos de aplicación e implementación de aplicaciones de Visual Basic y Visual C#.Generates and edits the application and deployment manifests for Visual Basic and Visual C# applications.
Mage.exe (generación y la herramienta de edición de manifiestos)Mage.exe (Manifest Generation and Editing Tool) Genera los manifiestos de aplicación e implementación de aplicaciones de Visual Basic, Visual C# y Visual C++.Generates the application and deployment manifests for Visual Basic, Visual C#, and Visual C++ applications.

Firma y vuelve a firmar los manifiestos de aplicación e implementación.Signs and re-signs the application and deployment manifests.

Se puede ejecutar desde scripts por lotes y el símbolo del sistema.Can be run from batch scripts and the command prompt.
MageUI.exe (manifiestos de generación y edición Tool, Graphical Client)MageUI.exe (Manifest Generation and Editing Tool, Graphical Client) Genera y edita los manifiestos de aplicación e implementación.Generates and edits the application and deployment manifests.

Firma y vuelve a firmar los manifiestos de aplicación e implementación.Signs and re-signs the application and deployment manifests.
GenerateApplicationManifest (tarea)GenerateApplicationManifest task Genera el manifiesto de aplicación.Generates the application manifest.

Se puede ejecutar desde MSBuild.Can be run from MSBuild. Para obtener más información, consulte referencia de MSBuild.For more information, see MSBuild reference.
GenerateDeploymentManifest (tarea)GenerateDeploymentManifest task Genera el manifiesto de implementación.Generates the deployment manifest.

Se puede ejecutar desde MSBuild.Can be run from MSBuild. Para obtener más información, consulte referencia de MSBuild.For more information, see MSBuild reference.
SignFile (tarea)SignFile task Signos de los manifiestos de aplicación e implementación.Signs the application and deployment manifests.

Se puede ejecutar desde MSBuild.Can be run from MSBuild. Para obtener más información, consulte referencia de MSBuild.For more information, see MSBuild reference.
Microsoft.Build.Tasks.Deployment.ManifestUtilities Desarrolle su propia aplicación para generar los manifiestos de aplicación e implementación.Develop your own application to generate the application and deployment manifests.

En la tabla siguiente se muestra la versión de .NET Framework necesaria para admitir las aplicaciones ClickOnce en estos exploradores.The following table shows the .NET Framework version required to support ClickOnce applications in these browsers.

ExploradorBrowser Versión de .NET Framework.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 DE, 3.5 SP1, 42.0 SP1, 3.5 SP1, 4

Vea tambiénSee also

Implementación de ClickOnce en Windows Vista ClickOnce deployment on Windows Vista
Publicar aplicaciones ClickOnce Publish ClickOnce applications
Proteger las aplicaciones ClickOnce Secure ClickOnce applications
Implementar componentes COM con ClickOnce Deploy COM components with ClickOnce
Compilar aplicaciones ClickOnce desde la línea de comandos Build ClickOnce applications from the command line
Depurar aplicaciones ClickOnce que utilizan System.Deployment.ApplicationDebug ClickOnce applications that use System.Deployment.Application