Compartir a través de


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

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

Nota:

Las instrucciones de este artículo muestran la versión más reciente de la experiencia de desarrollo interactiva (IDE) disponible en Visual Studio. El equipo puede mostrar nombres o ubicaciones diferentes para algunos de los elementos de la interfaz de usuario. Es posible que esté usando una versión diferente de Visual Studio o una configuración de entorno diferente. Para obtener más información, consulte 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 , elija Nuevoy haga clic en Proyecto.

  2. En el cuadro de diálogo Nuevo proyecto , haga clic en Windowsy, a continuación, haga clic en WindowsFormsApplication.

  3. En Nombre, escriba ConsentDialog y, a continuación, haga clic en Aceptar.

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

  5. En la ventana Propiedades , cambie la propiedad Text a Actualizar cuadro de diálogo de consentimiento.

  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 Text en Apariencia a lo siguiente:

    La aplicación que está a punto de instalar comprueba las 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 Checkbox al centro del formulario.

  10. En la ventana Propiedades , cambie la propiedad Text en Diseño a Acepto.

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

  12. En la ventana Propiedades , cambie la propiedad Text en Diseño a Continuar.

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

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

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

  16. En la ventana Propiedades , cambie la propiedad (Name) 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 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, a continuación, haga clic 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 ConsentDialog Properties, y a continuación, haga clic 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 aplicaciones, 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, vea Página aplicación, Diseñador de proyectos (Visual Basic) .

      Solo 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;
      }
      
  26. En el menú Compilar, haga clic en Crear solución.

Crea el paquete de instalador personalizado

Para mostrar la solicitud de privacidad a los usuarios finales, puede crear un paquete de arranque personalizado para la aplicación Update Consent Dialog e incluirlo como prerrequisito en todas las aplicaciones ClickOnce.

Este procedimiento muestra cómo crear un paquete de inicio personalizado creando los siguientes documentos:

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

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

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

Paso 1: Para crear el directorio bootstrapper

  1. Cree un directorio denominado UpdateConsentDialog en el %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 denominado 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: Para crear el archivo de manifiesto de product.xml

  1. Cree un archivo de texto denominado 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. Guarda el archivo en el directorio del bootstrapper UpdateConsentDialog.

Paso 3: Para crear el archivo de manifiesto de package.xml y los términos de licencia de software

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

  2. En el archivo package.xml , agregue el código XML siguiente 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' dentro del directorio del cargador UpdateConsentDialog.

  4. Cree un documento denominado 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 guarda 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' dentro del directorio bootstrapper 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 para cada configuración regional. Por ejemplo, si ha creado subdirectorios para las configuraciones regionales fr y de, cree archivos de manifiesto package.xml independientes y términos de licencia de software y guárdelos en los subdirectorios fr y de .

En Visual Studio, puede establecer la aplicación Update Consent como requisito previo.

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

  2. En el menú Proyecto, haga clic en Propiedades de ProjectName.

  3. Haga clic en la página Publicar y, a continuación, haga clic en Requisitos previos.

  4. Seleccione Update Consent Dialog (Actualizar consentimiento).

    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. Haz clic en Aceptar.

Crear y probar el programa de instalación

Después de establecer la aplicación Update Consent como requisito previo, puede generar el instalador y el arrancador para su aplicación.

Para crear y probar el programa de instalación, no haga clic en Acepto.

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

  2. En el menú Proyecto, haga clic en Propiedades de ProjectName.

  3. Haga clic en la página Publicar y, a continuación, 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. Lea el contrato de licencia de software y haga clic en Aceptar.

    Aparece la aplicación Diálogo de consentimiento de actualización y muestra el siguiente texto: La aplicación que está a punto de instalar comprueba las 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.

Para crear y probar el programa de instalación haciendo clic en Acepto

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

  2. En el menú Proyecto, haga clic en Propiedades de ProjectName.

  3. Haga clic en la página Publicar y, a continuación, 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. Lea el contrato de licencia de software y haga clic en Aceptar.

    Aparece la aplicación Diálogo de consentimiento de actualización y muestra el siguiente texto: La aplicación que está a punto de instalar comprueba las 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, a continuación, haga clic en Continuar.

    La aplicación comienza a instalarse.

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