Tutorial: Crear un programa previo personalizado con un mensaje de privacidadWalkthrough: Create a custom bootstrapper with a privacy prompt

Puede configurar las aplicaciones ClickOnce se actualizan automáticamente cuando estén disponibles los ensamblados con versiones más recientes de los archivos y las versiones de ensamblado.You can configure ClickOnce applications to automatically update when assemblies with newer file versions and assembly versions become available. Para asegurarse de que los clientes dar su consentimiento a este comportamiento, puede mostrar un aviso de privacidad a ellos.To make sure that your customers consent to this behavior, you can display a privacy prompt to them. A continuación, puede elegir si se debe conceder permiso a la aplicación se actualice automáticamente.Then, they can choose whether to grant permission to the application to update automatically. Si la aplicación no tiene permiso para actualizar automáticamente, no se instala.If the application is not allowed to update automatically, it does not install.

Note

Es posible que el equipo muestre nombres o ubicaciones diferentes para algunos de los elementos de la interfaz de usuario de Visual Studio en las siguientes instrucciones.Your computer might show different names or locations for some of the Visual Studio user interface elements in the following instructions. La edición de Visual Studio que se tenga y la configuración que se use determinan estos elementos.The Visual Studio edition that you have and the settings that you use, determine these elements. Para obtener más información, vea Personalizar el IDE.For more information, see Personalize the IDE.

Requisitos previosPrerequisites

Necesita los componentes siguientes para completar este tutorial:You need the following components to complete this walkthrough:

  • Visual Studio 2010.Visual Studio 2010.

Para mostrar un aviso de privacidad, cree una aplicación que solicita el lector dé su consentimiento a las actualizaciones automáticas para la aplicación.To display a privacy prompt, create an application that asks the reader to consent to automatic updates for the application.

  1. En el menú Archivo , elija Nuevoy haga clic en Proyecto.On the File menu, point to New, and then click Project.

  2. En el nuevo proyecto cuadro de diálogo, haga clic en Windowsy, a continuación, haga clic en WindowsFormsApplication.In the New Project dialog box, click Windows, and then click WindowsFormsApplication.

  3. Para el nombre, tipo ConsentDialogy, a continuación, haga clic en Aceptar.For the Name, type ConsentDialog, and then click OK.

  4. En el diseñador, haga clic en el formulario.In the designer, click the form.

  5. En el propiedades ventana, cambie el texto propiedad cuadro de diálogo de consentimiento para actualizaciones.In the Properties window, change the Text property to Update Consent Dialog.

  6. En el cuadro de herramientas, expanda todos los formularios de Windowsy arrastre un etiqueta control al formulario.In the Toolbox, expand All Windows Forms, and drag a Label control to the form.

  7. En el diseñador, haga clic en el control de etiqueta.In the designer, click the label control.

  8. En el propiedades ventana, cambie el texto propiedad bajo apariencia al siguiente:In the Properties window, change the Text property under Appearance to the following:

    Comprueba la aplicación que va a instalar las actualizaciones más recientes en la Web.The application that you are about to install checks for the latest updates on the Web. Al hacer clic en "Acepto", autorizar a la aplicación para buscar e instalar actualizaciones automáticamente desde Internet.By clicking on "I Agree", you authorize the application to check for and install updates automatically from the Internet.

  9. En el cuadro de herramientas, arrastre un casilla control a la mitad del formulario.In the Toolbox, drag a Checkbox control to the middle of the form.

  10. En el propiedades ventana, cambie el texto propiedad bajo diseño a acepto.In the Properties window, change the Text property under Layout to I Agree.

  11. En el cuadro de herramientas, arrastre un botón control a la parte inferior izquierda del formulario.In the Toolbox, drag a Button control to the lower left of the form.

  12. En el propiedades ventana, cambie el texto propiedad bajo diseño a continuar.In the Properties window, change the Text property under Layout to Proceed.

  13. En el propiedades ventana, cambie el (nombre) propiedad bajo diseño a por ProceedButton.In the Properties window, change the (Name) property under Design to ProceedButton.

  14. En el cuadro de herramientas, arrastre un botón control a la parte inferior derecha del formulario.In the Toolbox, drag a Button control to the bottom right of the form.

  15. En el propiedades ventana, cambie el texto propiedad bajo diseño a cancelar.In the Properties window, change the Text property under Layout to Cancel.

  16. En el propiedades ventana, cambie el (nombre) propiedad bajo diseño a CancelButton.In the Properties window, change the (Name) property under Design to CancelButton.

  17. En el diseñador, haga doble clic en el acepto checkbox que genere el controlador de eventos CheckedChanged.In the designer, double-click the I Agree checkbox to generate the CheckedChanged event handler.

  18. En el archivo de código Form1, agregue el código siguiente para el controlador de eventos CheckedChanged.In the Form1 code file, add the following code for the CheckedChanged event handler.

    private void checkBox1_CheckedChanged(object sender, EventArgs e)
    {
        ProceedButton.Enabled = !ProceedButton.Enabled;
    }
    
    Private Sub CheckBox1_CheckedChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles CheckBox1.CheckedChanged
        ProceedButton.Enabled = Not ProceedButton.Enabled
    End Sub
    
  19. Actualizar el constructor de clase para deshabilitar el continuar botón de forma predeterminada.Update the class constructor to disable the Proceed button by default.

    public Form1()
    {
        InitializeComponent();
        ProceedButton.Enabled = false;
    }
    
    Public Sub New()
        InitializeComponent()
        ProceedButton.Enabled = False
    End Sub
    
  20. En el archivo de código Form1, agregue el siguiente código para una variable booleana para realizar un seguimiento si el usuario final ha dado su consentimiento para actualizaciones en línea.In the Form1 code file, add the following code for a Boolean variable to track if the end user has consented to online updates.

    public bool accepted = false;
    
    Public accepted As Boolean = False
    
  21. En el diseñador, haga doble clic en el continuar botón para generar el controlador de eventos Click.In the designer, double-click the Proceed button to generate the Click event handler.

  22. En el archivo de código Form1, agregue el código siguiente al controlador de eventos Click para el continuar botón.In the Form1 code file, add the following code to the Click event handler for the Proceed button.

    private void ProceedButton_Click(object sender, EventArgs e)
    {
        if (ProceedButton.Enabled)
        {
            accepted = true;
            this.Close();
        }
    }
    
    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
    
  23. En el diseñador, haga doble clic en el cancelar botón para generar el controlador de eventos Click.In the designer, double-click the Cancel button to generate the Click event handler.

  24. En el archivo de código Form1, agregue el código siguiente para el controlador de eventos Click para el cancelar botón.In the Form1 code file, add the following code for the Click event handler for the Cancel button.

    private void CancelButton_Click(object sender, EventArgs e)
    {
        this.Close();
    }
    
    Private Sub CancelButton_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles CancelButton.Click
        Me.Close()
    End Sub
    
  25. Actualizar la aplicación para devolver un error si el usuario final no dar su consentimiento para actualizaciones en línea.Update the application to return an error if the end user does not consent to online updates.

    Para desarrolladores de Visual Basic:For Visual Basic developers only:

    1. En el Explorador de soluciones, haga clic en ConsentDialog.In Solution Explorer, click ConsentDialog.

    2. En el proyecto menú, haga clic en Agregar móduloy, a continuación, haga clic en agregar.On the Project menu, click Add Module, and then click Add.

    3. En el Module1.vb archivo de código, agregue el código siguiente.In the Module1.vb code file, add the following code.

      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 proyecto menú, haga clic en ConsentDialog propiedadesy, a continuación, haga clic en el aplicación ficha.On the Project menu, click ConsentDialog Properties, and then click the Application tab.

    5. Desactive la opción Habilitar marco de trabajo de aplicación.Uncheck Enable application framework.

    6. En el objeto Startup menú desplegable, seleccione Module1.In the Startup object drop-down menu, select Module1.

      Note

      Al deshabilitar el marco de aplicación, deshabilitan características como los estilos visuales de Windows XP, los eventos de aplicación, pantalla de presentación, aplicación de instancia única y.Disabling the application framework disables features such as Windows XP visual styles, application events, splash screen, single instance application, and more. Para obtener más información, consulte Application Page, Project Designer (Visual Basic).For more information, see Application Page, Project Designer (Visual Basic).

      Visual C# sólo para programadores:For Visual C# developers only:

      Abra el Program.cs archivo de código y agregue el código siguiente.Open the Program.cs code file, and add the following code.

      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 compilar menú, haga clic en BuildSolution.On the Build menu, click BuildSolution.

Crear el paquete de programa previo personalizadoCreate the custom bootstrapper package

Para mostrar el aviso de privacidad a los usuarios finales, puede crear un paquete de arranque personalizado para la aplicación del cuadro de diálogo de consentimiento para actualizaciones e incluirlo como requisito previo en todas las aplicaciones ClickOnce.To show the privacy prompt to end users, you can create a custom bootstrapper package for the Update Consent Dialog application and include it as a prerequisite in all of your ClickOnce applications.

Este procedimiento muestra cómo crear un paquete de programa previo personalizado mediante la creación de los siguientes documentos:This procedure demonstrates how to create a custom bootstrapper package by creating the following documents:

  • Un product.xml archivo de manifiesto para describir el contenido del programa previo.A product.xml manifest file to describe the contents of the bootstrapper.

  • Un package.xml archivo de manifiesto para enumerar los aspectos específicos de la localización de su paquete, como cadenas y los términos de licencia del software.A package.xml manifest file to list the localization-specific aspects of your package, such as strings and the software license terms.

  • Un documento para los términos de licencia del software.A document for the software license terms.

Paso 1: Crear el directorio de arranqueStep 1: To create the bootstrapper directory

  1. Cree un directorio denominado UpdateConsentDialog en el %PROGRAMFILES%\Microsoft SDKs\Windows\v7.0A\Bootstrapper\Packages.Create a directory named UpdateConsentDialog in the %PROGRAMFILES%\Microsoft SDKs\Windows\v7.0A\Bootstrapper\Packages.

    Note

    Necesita privilegios administrativos para crear esta carpeta.You may need administrative privileges to create this folder.

  2. En el UpdateConsentDialog directorio, cree un subdirectorio denominado en.In the UpdateConsentDialog directory, create a subdirectory named en.

    Note

    Cree un nuevo directorio para cada configuración regional.Create a new directory for each locale. Por ejemplo, puede agregar subdirectorios para las configuraciones regionales fr y de.For example, you can add subdirectories for the fr and de locales. Estos directorios contendría las cadenas de francés y alemán y paquetes de idioma, si es necesario.These directories would contain the French and German strings and language packs, if necessary.

Paso 2: Crear el archivo de manifiesto product.xmlStep 2: To create the product.xml manifest file

  1. Cree un archivo de texto llamado product.xml.Create a text file called product.xml.

  2. En el product.xml , agregue el siguiente código XML.In the product.xml file, add the following XML code. Asegúrese de que no se sobrescriba el código XML existente.Make sure that you do not overwrite the existing XML code.

    <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 de arranque UpdateConsentDialog.Save the file to the UpdateConsentDialog bootstrapper directory.

Paso 3: Crear el manifiesto package.xml archivo y el software de los términos de licenciaStep 3: To create the package.xml manifest file and the software license terms

  1. Cree un archivo de texto llamado package.xml.Create a text file called package.xml.

  2. En el package.xml , agregue el siguiente código XML para definir la configuración regional e incluir los términos de licencia del software.In the package.xml file, add the following XML code to define the locale and include the software license terms. Asegúrese de que no se sobrescriba el código XML existente.Make sure that you do not overwrite the existing XML code.

    <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 el directorio de arranque UpdateConsentDialog.Save the file to the en subdirectory in the UpdateConsentDialog bootstrapper directory.

  4. Crear un documento denominado eula.rtf para los términos de licencia del software.Create a document called eula.rtf for the software license terms.

    Note

    Los términos de licencia de software deben incluir información sobre licencias, garantía, responsabilidades y las leyes locales.The software license terms should include information about licensing, warranties, liabilities, and local laws. Estos archivos deben ser específicos de la configuración regional, así que asegúrese de que el archivo se guarda en un formato que admita caracteres MBCS o UNICODE.These files should be locale-specific, so make sure that the file is saved in a format that supports MBCS or UNICODE characters. Consulte su asesoría jurídica sobre el contenido de los términos de licencia del software.Consult your legal department about the content of the software license terms.

  5. Guarde el documento en el subdirectorio en el UpdateConsentDialog directorio de arranque.Save the document to the en subdirectory in the UpdateConsentDialog bootstrapper directory.

  6. Si es necesario, cree un nuevo package.xml manifiesto archivo y un nuevo eula.rtf documento para los términos de licencia de software para cada configuración regional.If necessary, create a new package.xml manifest file and a new eula.rtf document for the software license terms for each locale. Por ejemplo, si ha creado subdirectorios para las configuraciones regionales fr y de, crear archivos de manifiesto independiente package.xml y términos de licencia del software y guardarlos en los subdirectorios fr y de.For example, if you created subdirectories for the fr and de locales, create separate package.xml manifest files and software license terms and save them to the fr and de subdirectories.

En Visual Studio, puede establecer la aplicación de aceptación de actualizaciones como requisito previo.In Visual Studio, you can set the Update Consent application as a prerequisite.

  1. En el Explorador de soluciones, haga clic en el nombre de la aplicación que desea implementar.In Solution Explorer, click the name of your application that you want to deploy.

  2. En el proyecto menú, haga clic en ProjectName propiedades.On the Project menu, click ProjectName Properties.

  3. Haga clic en el publicar página y, a continuación, haga clic en requisitos previos.Click the Publish page, and then click Prerequisites.

  4. Seleccione actualizar cuadro de diálogo de consentimiento.Select Update Consent Dialog.

    Note

    Es posible que deba cerrar y volver a abrir Visual Studio para ver el cuadro de diálogo de consentimiento Update en el cuadro de diálogo requisitos previos.You may have to close and reopen Visual Studio to see the Update Consent Dialog in the Prerequisites Dialog Box.

  5. Haga clic en Aceptar.Click OK.

Crear y probar el programa de instalaciónCreate and test the Setup program

Después de configurar la aplicación de aceptación de la actualización como un requisito previo, puede generar el instalador y el programa previo para la aplicación.After you set the Update Consent application as a prerequisite, you can generate the installer and bootstrapper for your application.

Para crear y probar el programa de instalación, no haga clic en aceptoTo create and test the Setup program by not clicking I agree

  1. En el Explorador de soluciones, haga clic en el nombre de la aplicación que desea implementar.In Solution Explorer, click the name of your application that you want to deploy.

  2. En el proyecto menú, haga clic en ProjectName propiedades.On the Project menu, click ProjectName Properties.

  3. Haga clic en el publicar página y, a continuación, haga clic en publicar ahora.Click the Publish page, and then click Publish Now.

  4. Si el resultado de la publicación no se abre automáticamente, navegue hasta el resultado de la publicación.If the publish output does not open automatically, navigate to the publish output.

  5. Ejecute el Setup.exe programa.Run the Setup.exe program.

    El programa de instalación muestra el contrato de licencia del software de cuadro de diálogo de consentimiento de actualización.The Setup program shows the Update Consent Dialog software license agreement.

  6. Lea el contrato de licencia de software y, a continuación, haga clic en Accept.Read the software license agreement, and then click Accept.

    La aplicación del cuadro de diálogo de consentimiento de actualización aparece y muestra el siguiente texto: comprobaciones de la aplicación que va a instalar las actualizaciones más recientes en la Web.The Update Consent Dialog application appears and shows the following text: The application that you are about to install checks for the latest updates on the Web. Al hacer clic en acepto, autorizar a la aplicación para buscar actualizaciones automáticamente en Internet.By clicking on I Agree, you authorize the application to check for updates automatically on the Internet.

  7. Cierre la aplicación o haga clic en Cancelar.Close the application or click Cancel.

    La aplicación muestra un error: se produjo un error durante la instalación de componentes del sistema para ApplicationName.The application shows an error: An error occurred while installing system components for ApplicationName. El programa de instalación no puede continuar hasta que se hayan instalado correctamente todos los componentes del sistema.Setup cannot continue until all system components have been successfully installed.

  8. Haga clic en detalles para mostrar el siguiente mensaje de error: cuadro de diálogo de consentimiento de componente actualizar no se pudo instalar el siguiente mensaje de error: "no se acepta el contrato de actualización automática".Click Details to show the following error message: Component Update Consent Dialog has failed to install with the following error message: "The automatic update agreement is not accepted." No se pudo instalar los componentes siguientes:-cuadro de diálogo de consentimiento de actualizaciónThe following components failed to install: - Update Consent Dialog

  9. Haga clic en Cerrar.Click Close.

Para crear y probar el programa de instalación, haga clic en aceptoTo create and test the Setup program by clicking I agree

  1. En el Explorador de soluciones, haga clic en el nombre de la aplicación que desea implementar.In Solution Explorer, click the name of your application that you want to deploy.

  2. En el proyecto menú, haga clic en ProjectName propiedades.On the Project menu, click ProjectName Properties.

  3. Haga clic en el publicar página y, a continuación, haga clic en publicar ahora.Click the Publish page, and then click Publish Now.

  4. Si el resultado de la publicación no se abre automáticamente, navegue hasta el resultado de la publicación.If the publish output does not open automatically, navigate to the publish output.

  5. Ejecute el Setup.exe programa.Run the Setup.exe program.

    El programa de instalación muestra el contrato de licencia del software de cuadro de diálogo de consentimiento de actualización.The Setup program shows the Update Consent Dialog software license agreement.

  6. Lea el contrato de licencia de software y, a continuación, haga clic en Accept.Read the software license agreement, and then click Accept.

    La aplicación del cuadro de diálogo de consentimiento de actualización aparece y muestra el siguiente texto: comprobaciones de la aplicación que va a instalar las actualizaciones más recientes en la Web.The Update Consent Dialog application appears and shows the following text: The application that you are about to install checks for the latest updates on the Web. Al hacer clic en acepto, autorizar a la aplicación para buscar actualizaciones automáticamente en Internet.By clicking on I Agree, you authorize the application to check for updates automatically on the Internet.

  7. Haga clic en aceptoy, a continuación, haga clic en continuar.Click I Agree, and then click Proceed.

    La aplicación comienza a instalar.The application starts to install.

  8. Si aparece el cuadro de diálogo de instalación de la aplicación, haga clic en instalar.If the Application Install dialog box appears, click Install.

Vea tambiénSee also

Requisitos previos de implementación de aplicación Application deployment prerequisites
Crear paquetes de arranque Create bootstrapper packages
Cómo: crear un manifiesto de producto How to: Create a product manifest
Cómo: crear un manifiesto del paquete How to: Create a package manifest
Referencia de esquema de paquete y del productoProduct and package schema reference