Compartir a través de


Tutorial: Creación de un arranque personalizado con un mensaje de privacidad

Puede configurar aplicaciones ClickOnce para que se actualicen automáticamente cuando estén disponibles ensamblados con versiones de archivo y de ensamblado más recientes. Para asegurarse de que los clientes dan su consentimiento a este comportamiento, puede mostrar un aviso de privacidad para ellos. A continuación, pueden elegir si conceder permiso a la aplicación para que se actualice automáticamente. Si la aplicación no puede actualizarse automáticamente, no se instala.

Nota

Es posible que el equipo muestre nombres o ubicaciones diferentes para algunos de los elementos de la interfaz de usuario de Visual Studio en este artículo. Puede que esté usando una edición diferente de Visual Studio u otra configuración del entorno. Para obtener más información, vea Personalizar el IDE.

Para mostrar un aviso de privacidad, cree una aplicación que pida al lector que dé su consentimiento a las actualizaciones automáticas de la aplicación.

  1. En el menú Archivo , seleccione Nuevoy haga clic en Proyecto.

  2. En el cuadro de diálogo Nuevo proyecto, haga clic en Visual C# y, luego, en WindowsFormsApplication.

  3. En Nombre, escriba ConsentDialog y, luego, haga clic en Aceptar.

  4. En el diseñador, haga clic en el formulario.

  5. En la ventana Propiedades, cambie la propiedad Texto a Update Consent Dialog.

  6. En el Cuadro de herramientas, expanda Todo Windows Forms y arrastre un control Etiqueta al formulario.

  7. En el diseñador, haga clic en el control de etiqueta.

  8. En la ventana Propiedades, cambie la propiedad Texto en Apariencia por lo siguiente:

    La aplicación que está a punto de instalar comprueba si hay actualizaciones más recientes en la web. Al hacer clic en "Acepto", autoriza a la aplicación a buscar e instalar actualizaciones automáticamente desde Internet.

  9. En el Cuadro de herramientas, arrastre un control Casilla al centro del formulario.

  10. En la ventana Propiedades, cambie la propiedad Texto en Diseño por Acepto.

  11. En el Cuadro de herramientas, arrastre un control Botón a la parte inferior izquierda del formulario.

  12. En la ventana Propiedades, cambie la propiedad Texto en Diseño por Continuar.

  13. En la ventana Propiedades, cambie la propiedad (Nombre) en Diseño por ProceedButton.

  14. En el Cuadro de herramientas, arrastre un control Botón a la parte inferior derecha del formulario.

  15. En la ventana Propiedades, cambie la propiedad Texto en Diseño a Cancelar.

  16. En la ventana Propiedades, cambie la propiedad (Nombre) en Diseño a CancelButton.

  17. En el diseñador, haga doble clic en la casilla Acepto para generar el controlador de eventos CheckedChanged.

  18. En el archivo de código Form1, agregue el código siguiente para el controlador de eventos CheckedChanged.

    private void checkBox1_CheckedChanged(object sender, EventArgs e)
    {
        ProceedButton.Enabled = !ProceedButton.Enabled;
    }
    
  19. Actualice el constructor de clase para deshabilitar el botón Continuar de forma predeterminada.

    public Form1()
    {
        InitializeComponent();
        ProceedButton.Enabled = false;
    }
    
  20. En el archivo de código Form1, agregue el código siguiente para una variable booleana para realizar un seguimiento de si el usuario final ha consentido las actualizaciones en línea.

    public bool accepted = false;
    
  21. En el diseñador, haga doble clic en el botón Continuar para generar el controlador de eventos Click.

  22. En el archivo de código Form1, agregue el código siguiente al controlador de eventos Click para el botón Continuar.

    private void ProceedButton_Click(object sender, EventArgs e)
    {
        if (ProceedButton.Enabled)
        {
            accepted = true;
            this.Close();
        }
    }
    
  23. En el diseñador, haga doble clic en el botón Cancelar para generar el controlador de eventos Click.

  24. En el archivo de código Form1, agregue el código siguiente para el controlador de eventos Click para el botón Cancelar.

    private void CancelButton_Click(object sender, EventArgs e)
    {
        this.Close();
    }
    
  25. Actualice la aplicación para devolver un error si el usuario final no da su consentimiento a las actualizaciones en línea.

    Solo para desarrolladores de Visual Basic:

    1. En el Explorador de soluciones, haga clic en ConsentDialog.

    2. En el menú Proyecto, haga clic en Agregar módulo y, luego, en Agregar.

    3. En el archivo de código Module1.vb, agregue el código siguiente.

      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
      
    4. En el menú Proyecto, haga clic en Propiedades de ConsentDialog y, luego, en la pestaña Aplicación.

    5. Desactive Habilitar marco de trabajo de la aplicación.

    6. En el menú desplegable Objeto de inicio, seleccione Module1.

      Nota:

      Al deshabilitar el marco de trabajo de la aplicación, se deshabilitan características como estilos visuales, eventos de aplicación, pantalla de presentación, aplicación de instancia única, etc. Para obtener más información, consulte Application Page, Project Designer (Visual Basic).

      Solo para desarrolladores de Visual C#:

      Abra el archivo de código Program.cs y agregue el siguiente código.

      static int Main()
      {
          Application.EnableVisualStyles();
          Application.SetCompatibleTextRenderingDefault(false);
          Form1 f = new Form1();
          Application.Run(f);
          if (!f.accepted)
              return -1;
          else
              return 0;
      }
      
  26. En el menú Compilar, haga clic en BuildSolution.

Creación del paquete de programa previo personalizado

Para mostrar el aviso de privacidad a los usuarios finales, puede crear un paquete de programa previo personalizado para la aplicación de cuadro de diálogo de consentimiento de actualización e incluirlo como requisito previo en todas las aplicaciones ClickOnce.

En este procedimiento se muestra cómo crear un paquete de programa previo personalizado mediante la creación de los siguientes documentos:

  • Un archivo de manifiesto product.xml para describir el contenido del programa previo.

  • Un archivo de manifiesto package.xml para mostrar los aspectos específicos de localización de su paquete, como cadenas y los términos de licencia de software.

  • Documento de los términos de licencia de software.

Paso 1: Creación del directorio del programa previo

  1. Cree un directorio llamado UpdateConsentDialog en %PROGRAMFILES%\Microsoft SDKs\Windows\v7.0A\Bootstrapper\Packages.

    Nota

    Es posible que necesite privilegios administrativos para crear esta carpeta.

  2. En el directorio UpdateConsentDialog, cree un subdirectorio llamado en.

    Nota

    Cree un directorio para cada configuración regional. Por ejemplo, puede agregar subdirectorios para las configuraciones regionales "fr" y "de". Estos directorios contendrán las cadenas y los paquetes de idioma de francés y alemán, si es necesario.

Paso 2: Creación del archivo de manifiesto product.xml

  1. Cree un archivo de texto llamado product.xml.

  2. En el archivo product.xml, agregue el siguiente código XML. Asegúrese de no sobrescribir el código XML existente.

    <Product
      xmlns="http://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>
    
  3. Guarde el archivo en el directorio del programa previo UpdateConsentDialog.

Paso 3: Creación del archivo de manifiesto package.xml y los términos de licencia de software

  1. Cree un archivo de texto llamado package.xml.

  2. En el archivo package.xml, agregue el siguiente código XML para definir la configuración regional e incluir los términos de licencia de software. Asegúrese de no sobrescribir el código XML existente.

    <Package
      xmlns="http://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>
    
  3. Guarde el archivo en el subdirectorio "en" del directorio del programa previo UpdateConsentDialog.

  4. Cree un documento llamado eula.rtf para los términos de licencia de software.

    Nota

    Los términos de licencia de software deben incluir información sobre licencias, garantías, responsabilidades y leyes locales. Estos archivos deben ser específicos de la configuración regional, por lo que debe asegurarse de que el archivo se guarde en un formato que admita caracteres MBCS o UNICODE. Consulte a su departamento legal sobre el contenido de los términos de licencia de software.

  5. Guarde el documento en el subdirectorio "en" del directorio del programa previo UpdateConsentDialog.

  6. Si es necesario, cree un nuevo archivo de manifiesto package.xml y un nuevo documento eula.rtf para los términos de licencia de software correspondientes a 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 distintos y guárdelos en los subdirectorios "fr" y "de".

En Visual Studio, puede establecer la aplicación de consentimiento de actualización como requisito previo.

  1. En el Explorador de soluciones, haga clic en el nombre de la aplicación que quiere implementar.

  2. En el menú Proyecto, haga clic en Propiedades de Nombre del proyecto.

  3. Haga clic en la página Publicar y, luego, en Requisitos previos.

  4. Seleccione Update Consent Dialog.

    Nota

    Es posible que tenga que cerrar y volver a abrir Visual Studio para ver el cuadro de diálogo de consentimiento de actualización en el cuadro de diálogo "Requisitos previos".

  5. Haga clic en OK.

Creación y prueba del programa de instalación

Después de establecer la aplicación de consentimiento de actualización como requisito previo, puede generar el instalador y el programa previo para ella.

Para crear y probar el programa de instalación sin hacer clic en "Acepto", siga estos pasos:

  1. En el Explorador de soluciones, haga clic en el nombre de la aplicación que quiere implementar.

  2. En el menú Proyecto, haga clic en Propiedades de Nombre del proyecto.

  3. Vaya a la página Publicar y haga clic en Publicar ahora.

  4. Si la salida de publicación no se abre automáticamente, vaya hasta ella.

  5. Ejecute el programa Setup.exe.

    El programa de instalación muestra el contrato de licencia de software del cuadro de diálogo de consentimiento de actualización.

  6. Léalo y, luego, haga clic en Aceptar.

    Aparece la aplicación de cuadro de diálogo de consentimiento de actualización con el texto siguiente: "La aplicación a la que está a punto de instalar comprueba si hay actualizaciones más recientes en la web". Al hacer clic en "Acepto", autoriza a la aplicación a buscar actualizaciones automáticamente en Internet.

  7. Cierre la aplicación o haga clic en "Cancelar".

    La aplicación muestra un error: "Error al instalar componentes del sistema para ApplicationName". El programa de instalación no puede continuar hasta que todos los componentes del sistema se hayan instalado correctamente.

  8. Haga clic en "Detalles" para mostrar el siguiente mensaje de error: El cuadro de diálogo de consentimiento de actualización de componentes no se pudo instalar con el siguiente mensaje de error: "No se acepta el contrato de actualización automática". No se pudieron instalar los siguientes componentes: - Cuadro de diálogo de consentimiento de actualización

  9. Haga clic en Cerrar.

Creación y prueba del programa de instalación haciendo clic en "Acepto"

  1. En el Explorador de soluciones, haga clic en el nombre de la aplicación que quiere implementar.

  2. En el menú Proyecto, haga clic en Propiedades de Nombre del proyecto.

  3. Vaya a la página Publicar y haga clic en Publicar ahora.

  4. Si la salida de publicación no se abre automáticamente, vaya hasta ella.

  5. Ejecute el programa Setup.exe.

    El programa de instalación muestra el contrato de licencia de software del cuadro de diálogo de consentimiento de actualización.

  6. Léalo y, luego, haga clic en Aceptar.

    Aparece la aplicación de cuadro de diálogo de consentimiento de actualización con el texto siguiente: "La aplicación a la que está a punto de instalar comprueba si hay actualizaciones más recientes en la web". Al hacer clic en "Acepto", autoriza a la aplicación a buscar actualizaciones automáticamente en Internet.

  7. Haga clic en Acepto y, luego, en Continuar.

    La aplicación comienza a instalarse.

  8. Si aparece el cuadro de diálogo Instalar aplicación, haga clic en Instalación de aplicación.