Tutorial: Crear un arranque personalizado para mostrar un aviso de privacidad
Puede configurar las aplicaciones ClickOnce de modo que se actualicen automáticamente cuando estén disponibles versiones más recientes de los archivos y los ensamblados.Para asegurarse de que los clientes aceptan este comportamiento, puede mostrarles un mensaje de privacidad.De este modo, pueden elegir si desean conceder permiso a la aplicación para que se actualice automáticamente.Si no se permite que la aplicación se actualice automáticamente, no se instala.
[!NOTA]
Es posible que su equipo muestre nombres o ubicaciones diferentes para algunos de los elementos de la interfaz de usuario de Visual Studio incluidos en las instrucciones siguientes. La edición de Visual Studio que se tenga y la configuración que se utilice determinan estos elementos. Para obtener más información, vea Valores de configuración de Visual Studio.
Requisitos previos
Necesita los componentes siguientes para completar este tutorial:
- Visual Studio 2010.
Crear un cuadro de diálogo de aceptación de actualizaciones
Para mostrar un mensaje de privacidad, cree una aplicación que pida al lector que acepte las actualizaciones automática de la aplicación.
Para crear un cuadro de diálogo de aceptación
En el menú Archivo, elija Nuevo y haga clic en Proyecto.
En el cuadro de diálogo Nuevo proyecto, haga clic en Windows y haga clic en Aplicación de WindowsForms.
En el Nombre, escriba ConsentDialog y, a continuación, haga clic en Aceptar.
En el diseñador, haga clic en el formulario.
En la ventana Propiedades, cambie la propiedad Text a Cuadro de diálogo de aceptación de actualizaciones.
En el Cuadro de herramientas, expanda Todos los formularios Windows Forms y arrastre un control Label hasta el formulario.
En el diseñador, haga clic en el control de etiqueta.
En la ventana Propiedades, cambie la propiedad Text que aparece en Apariencia por el siguiente código.
La aplicación que está a punto de instalar comprueba las últimas actualizaciones en la Web.Al hacer clic en "Acepto", autoriza a la aplicación que compruebe las actualizaciones y las instale automáticamente desde Internet.
En el Cuadro de herramientas, arrastre un control Checkbox hasta el centro del formulario.
En la ventana Propiedades, cambie la propiedad Text que aparece en Diseño por Acepto.
En el Cuadro de herramientas, arrastre un control Button a la parte inferior izquierda del formulario.
En la ventana Propiedades, cambie la propiedad Text que aparece en Diseño por Continuar.
En la ventana Propiedades, cambie la propiedad (Name) que aparece en Diseño por ProceedButton.
En el Cuadro de herramientas, arrastre un control Button a la parte inferior derecha del formulario.
En la ventana Propiedades, cambie la propiedad Text que aparece en Diseño por Cancelar.
En la ventana Propiedades, cambie la propiedad (Name) que aparece en Diseño por CancelButton.
En el diseñador, haga doble clic en la casilla Acepto para generar el controlador de eventos CheckedChanged.
En el archivo de código Form1, agregue el siguiente código para el controlador de eventos CheckedChanged.
Private Sub CheckBox1_CheckedChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles CheckBox1.CheckedChanged ProceedButton.Enabled = Not ProceedButton.Enabled End Sub
private void checkBox1_CheckedChanged(object sender, EventArgs e) { ProceedButton.Enabled = !ProceedButton.Enabled; }
Actualice el constructor de clase para deshabilitar el botón Continuar de forma predeterminada.
Public Sub New() InitializeComponent() ProceedButton.Enabled = False End Sub
public Form1() { InitializeComponent(); ProceedButton.Enabled = false; }
En el archivo de código de Form1, agregue el siguiente código a fin de utilizar una variable Boolean para realizar el seguimiento de si el usuario final ha aceptado a las actualizaciones en línea.
Public accepted As Boolean = False
public bool accepted = false;
En el diseñador, haga doble clic en el botón Continuar para generar el controlador de eventos Click.
En el archivo de código Form1, agregue el código siguiente al controlador de eventos Click del botón Continuar.
Private Sub ProceedButton_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles ProceedButton.Click If ProceedButton.Enabled Then accepted = True Me.Close() End If End Sub
private void ProceedButton_Click(object sender, EventArgs e) { if (ProceedButton.Enabled) { accepted = true; this.Close(); } }
En el diseñador, haga doble clic en el botón Cancelar para generar el controlador de eventos Click.
En el archivo de código Form1, agregue el código siguiente al controlador de eventos Click del botón Cancelar.
Private Sub CancelButton_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles CancelButton.Click Me.Close() End Sub
private void CancelButton_Click(object sender, EventArgs e) { this.Close(); }
Actualice la aplicación de modo que devuelva un error si el usuario final no acepta las actualizaciones en línea.
Únicamente para desarrolladores de Visual Basic:
En el Explorador de soluciones, haga clic en ConsentDialog.
En el menú Proyecto, haga clic en Agregar módulo y en Agregar.
En el archivo de código Module1.vb, agregue el siguiente código.
Module Module1 Function Main() As Integer Application.EnableVisualStyles() Application.SetCompatibleTextRenderingDefault(False) Dim f As New Form1() Application.Run(f) If (Not f.accepted) Then Return -1 Else Return 0 End If End Function End Module
En el menú Proyecto, haga clic en Propiedades de ConsentDialog y, a continuación, seleccione la pestaña Aplicación.
Desactive Habilitar marco de trabajo de la aplicación.
En el menú desplegable Objeto de inicio, seleccione Module1.
[!NOTA]
Al deshabilitar el marco de trabajo de la aplicación, se deshabilitan características tales como los estilos visuales de Windows XP, los eventos de aplicación, la pantalla de presentación, la aplicación de instancia única, etc.Para obtener más información, vea Aplicación (Página, Diseñador de proyectos) (Visual Basic).
Únicamente para desarrolladores de Visual C#:
Abra el archivo de código Program.cs y agregue el código siguiente.
static int Main() { Application.EnableVisualStyles(); Application.SetCompatibleTextRenderingDefault(false); Form1 f = new Form1(); Application.Run(f); if (!f.accepted) return -1; else return 0; }
En el menú Compilar, haga clic en Compilarsolución.
Crear el paquete de arranque de personalizado
Para mostrar el mensaje de privacidad a los usuarios finales, puede crear un paquete de arranque personalizado para la aplicación Cuadro de diálogo de aceptación de actualizaciones e incluirlo como requisito previo en todas las aplicaciones ClickOnce.
En este procedimiento se muestra cómo crear un paquete de arranque personalizado mediante la creación de los siguientes documentos:
Un archivo de manifiesto product.xml para describir el contenido del archivo de arranque.
Un archivo de manifiesto package.xml en que se enumeren los aspectos específicos de la localización del paquete, como las cadenas y los términos de la licencia de software.
Un documento con los términos de la licencia de software.
Paso 1: Crear el directorio de arranque
Crear un directorio denominado UpdateConsentDialog en %Archivos de programa%\Microsoft SDKs\Windows\v7.0A\Bootstrapper\Packages.
[!NOTA]
Puede necesitar privilegios de administrador para crear esta carpeta.
En el directorio UpdateConsentDialog, cree un subdirectorio denominado es.
[!NOTA]
Cree un nuevo directorio para cada configuración regional.Por ejemplo, puede agregar subdirectorios para las configuraciones regionales fr y de.Estos directorios contendrían las cadenas y los paquetes de idioma en francés y alemán, si fuera necesario.
Paso 2: Crear el archivo de manifiesto product.xml
Cree un archivo de texto denominado product.xml.
En el archivo product.xml, agregue el siguiente código XML.Asegúrese de no sobrescribir el código XML existente.
<Product xmlns="https://schemas.microsoft.com/developer/2004/01/bootstrapper" ProductCode="Microsoft.Sample.EULA"> <!-- Defines the list of files to be copied on build. --> <PackageFiles CopyAllPackageFiles="false"> <PackageFile Name="ConsentDialog.exe"/> </PackageFiles> <!-- Defines how to run the Setup package.--> <Commands > <Command PackageFile = "ConsentDialog.exe" Arguments=''> <ExitCodes> <ExitCode Value="0" Result="Success" /> <ExitCode Value="-1" Result="Fail" String="AU_Unaccepted" /> <DefaultExitCode Result="Fail" FormatMessageFromSystem="true" String="GeneralFailure" /> </ExitCodes> </Command> </Commands> </Product>
Guarde el archivo en el directorio de arranque UpdateConsentDialog.
Paso 3: Crear el archivo de manifiesto package.xml y los términos de la licencia de software
Cree un archivo de texto denominado package.xml.
En el archivo package.xml, agregue el siguiente código XML para definir la configuración regional e incluir los términos de la licencia de software.Asegúrese de no sobrescribir el código XML existente.
<Package xmlns="https://schemas.microsoft.com/developer/2004/01/bootstrapper" Name="DisplayName" Culture="Culture" LicenseAgreement="eula.rtf"> <PackageFiles> <PackageFile Name="eula.rtf"/> </PackageFiles> <!-- Defines a localizable string table for error messages. --> <Strings> <String Name="DisplayName">Update Consent Dialog</String> <String Name="Culture">en</String> <String Name="AU_Unaccepted">The automatic update agreement is not accepted.</String> <String Name="GeneralFailure">A failure occurred attempting to launch the setup.</String> </Strings> </Package>
Guarde el archivo en el subdirectorio es del directorio de arranque UpdateConsentDialog.
Cree un documento denominado eula.rtf para los términos de la licencia de software.
[!NOTA]
Los términos de la licencia de software deben incluir información sobre la licencia que se concede, las garantías, las responsabilidades y la legislación local.Estos archivos deben ser específicos de la configuración regional; por ello debe asegurarse de guardarlos en un formato que admita los caracteres UNICODE o MBCS.Consulte al departamento legal sobre el contenido de los términos de la licencia de software.
Guarde el documento en el subdirectorio es del directorio de arranque UpdateConsentDialog.
Si es necesario, cree un nuevo archivo de manifiesto package.xml y un nuevo documento eula.rtf para los términos de la licencia de software de cada configuración regional.Por ejemplo, si ha creado subdirectorios para las configuraciones regionales fr y de, cree archivos de manifiesto package.xml y términos de licencia de software independientes y guárdelos en los subdirectorios fr y de.
Establecer la aplicación de aceptación de actualizaciones como requisito previo
En Visual Studio, puede establecer la aplicación de aceptación de actualizaciones como requisito previo.
Para establecer la aplicación de aceptación de actualizaciones como requisito previo
En el Explorador de soluciones, haga clic en el nombre de la aplicación que desee implementar.
En el menú Proyecto, haga clic en Propiedades de nombreDeProyecto.
Haga clic en la página Publicar y, a continuación, haga clic en Requisitos previos.
Seleccione Cuadro de diálogo de aceptación de actualizaciones.
[!NOTA]
Puede que tenga que cerrar Visual Studio y volver a abrirlo para ver el Cuadro de diálogo de aceptación de actualizaciones en el cuadro de diálogo Requisitos previos.
Haga clic en Aceptar.
Crear y probar el programa de instalación
Después de establecer la aplicación de aceptación de actualizaciones como requisito previo, puede generar el instalador y el archivo de arranque de la aplicación.
Para crear y probar el programa de instalación sin hacer clic en Acepto
En el Explorador de soluciones, haga clic en el nombre de la aplicación que desee implementar.
En el menú Proyecto, haga clic en Propiedades de nombreDeProyecto.
Haga clic en la página Publicar y, a continuación, en Publicar ahora.
Si la salida de publicación no se abre automáticamente, navegue hasta ella.
Ejecute el programa Setup.exe.
El programa Setup muestra el acuerdo de licencia de software del cuadro de diálogo de aceptación de actualizaciones.
Lea el contrato de licencia de software y haga clic en Acepto.
Aparece la aplicación de aceptación de actualizaciones con el texto siguiente: La aplicación que está a punto de instalar comprueba las últimas actualizaciones en la Web.Al hacer clic en "Acepto", autoriza a la aplicación que compruebe las actualizaciones automáticamente en Internet.
Cierre la aplicación o haga clic en Cancelar.
La aplicación muestra un error: Error al instalar componentes del sistema para nombreDeLaAplicación.La instalación no puede continuar hasta que todos los componentes del sistema se hayan instalado correctamente.
Haga clic en Detalles para mostrar el siguiente mensaje de error: No se pudo instalar el componente Cuadro de diálogo de aceptación de actualizaciones y apareció el siguiente mensaje de error: "The automatic update agreement is not accepted". Error al instalar los siguientes componentes: - Cuadro de diálogo de aceptación de actualizaciones
Haga clic en Cerrar.
Para crear y probar el programa de instalación haciendo clic en Acepto
En el Explorador de soluciones, haga clic en el nombre de la aplicación que desee implementar.
En el menú Proyecto, haga clic en Propiedades de nombreDeProyecto.
Haga clic en la página Publicar y, a continuación, en Publicar ahora.
Si la salida de publicación no se abre automáticamente, navegue hasta ella.
Ejecute el programa Setup.exe.
El programa Setup muestra el acuerdo de licencia de software del cuadro de diálogo de aceptación de actualizaciones.
Lea el contrato de licencia de software y haga clic en Acepto.
Aparece la aplicación de aceptación de actualizaciones con el texto siguiente: La aplicación que está a punto de instalar comprueba las últimas actualizaciones en la Web.Al hacer clic en "Acepto", autoriza a la aplicación que compruebe las actualizaciones automáticamente en Internet.
Haga clic en Acepto y, a continuación, en Continuar.
La aplicación se empieza a instalar.
Si aparece el cuadro de diálogo de instalación de la aplicación, haga clic en Instalar.
Vea también
Tareas
Cómo: Crear un manifiesto de producto
Cómo: Crear un manifiesto de paquete
Referencia
Referencia de esquemas de productos y paquetes