Partilhar via


Passo a passo: Criar um programa de inicialização personalizado com um prompt de privacidade

Você pode configurar os aplicativos ClickOnce para atualizar automaticamente quando assemblies com versões de arquivo e versões de assembly mais recentes estiverem disponíveis. Para garantir que seus clientes consintam com esse comportamento, você pode exibir um prompt de privacidade para eles. Em seguida, eles podem escolher se concedem permissão ao aplicativo para atualizar automaticamente. Se o aplicativo não tiver permissão para atualizar automaticamente, ele não será instalado.

Observação

As instruções neste artigo ilustram a versão mais recente da experiência de desenvolvimento interativo (IDE) disponível no Visual Studio. Seu computador pode mostrar nomes ou locais diferentes para alguns dos elementos da interface do usuário. Você pode estar usando uma versão diferente do Visual Studio ou configurações de ambiente diferentes. Para obter mais informações, consulte Personalizar o IDE.

Para exibir um prompt de privacidade, crie um aplicativo que peça ao leitor para consentir com as atualizações automáticas para o aplicativo.

  1. No menu Ficheiro, aponte para Novoe, em seguida, clique em Projeto.

  2. Na caixa de diálogo Novo Projeto , clique em Windows e, em seguida, clique em WindowsFormsApplication.

  3. Para Name, digite ConsentDialog e clique em OK.

  4. No designer, clique no formulário.

  5. Na janela Propriedades , altere a propriedade Text para Atualizar caixa de diálogo de consentimento.

  6. Na Caixa de Ferramentas, expanda Todos os Formulários do Windows e arraste um controle Label para o formulário.

  7. No designer, clique no controle de rótulo.

  8. Na janela Propriedades , altere a propriedade Text em Aparência para o seguinte:

    O aplicativo que você está prestes a instalar verifica as atualizações mais recentes na Web. Ao clicar em "Concordo", você autoriza o aplicativo a verificar e instalar atualizações automaticamente da Internet.

  9. Na Caixa de Ferramentas, arraste um controle Checkbox para o meio do formulário.

  10. Na janela Propriedades , altere a propriedade Text em Layout para Concordo.

  11. Na Caixa de Ferramentas, arraste um controle Button para o canto inferior esquerdo do formulário.

  12. Na janela Propriedades , altere a propriedade Text em Layout para Continuar.

  13. Na janela Propriedades , altere a propriedade (Name) em Design para ProceedButton.

  14. Na Caixa de Ferramentas, arraste um controle Button para o canto inferior direito do formulário.

  15. Na janela Propriedades , altere a propriedade Text em Layout para Cancelar.

  16. Na janela Propriedades , altere a propriedade (Name) em Design para CancelButton.

  17. No designer, clique duas vezes na caixa de seleção Concordo para gerar o manipulador de eventos CheckedChanged.

  18. No arquivo de código Form1, adicione o seguinte código para o manipulador de eventos CheckedChanged.

    private void checkBox1_CheckedChanged(object sender, EventArgs e)
    {
        ProceedButton.Enabled = !ProceedButton.Enabled;
    }
    
  19. Atualize o construtor de classe para desativar o botão Continuar por padrão.

    public Form1()
    {
        InitializeComponent();
        ProceedButton.Enabled = false;
    }
    
  20. No arquivo de código Form1, adicione o seguinte código para uma variável booleana para controlar se o usuário final consentiu com atualizações online.

    public bool accepted = false;
    
  21. No designer, clique duas vezes no botão Continuar para gerar o manipulador de eventos Click.

  22. No arquivo de código Form1, adicione o seguinte código ao manipulador de eventos Click para o botão Continuar .

    private void ProceedButton_Click(object sender, EventArgs e)
    {
        if (ProceedButton.Enabled)
        {
            accepted = true;
            this.Close();
        }
    }
    
  23. No designer, clique duas vezes no botão Cancelar para gerar o manipulador de eventos Click.

  24. No arquivo de código Form1, adicione o seguinte código para o manipulador de eventos Click para o botão Cancelar .

    private void CancelButton_Click(object sender, EventArgs e)
    {
        this.Close();
    }
    
  25. Atualize a aplicação para retornar um erro se o utilizador final não consentir com as atualizações online.

    Apenas para desenvolvedores do Visual Basic:

    1. No Gerenciador de Soluções, clique em ConsentDialog.

    2. No menu Project , clique em Adicionar módulo e, em seguida, clique em Adicionar .

    3. No arquivo de código Module1.vb , adicione o código a seguir.

      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. No menu Project, clique em ConsentDialog Propriedades e, em seguida, clique na guia Aplicação.

    5. Desmarque Ativar estrutura de aplicativo.

    6. No menu pendente de Objeto de inicialização, selecione Module1.

      Observação

      A desativação da estrutura do aplicativo desabilita recursos como estilos visuais, eventos do aplicativo, tela inicial, aplicativo de instância única e muito mais. Para obter mais informações, consulte Página de aplicativo, Project Designer (Visual Basic).

      Somente para desenvolvedores do Visual C#:

      Abra o arquivo de código Program.cs e adicione o código a seguir.

      static int Main()
      {
          Application.EnableVisualStyles();
          Application.SetCompatibleTextRenderingDefault(false);
          Form1 f = new Form1();
          Application.Run(f);
          if (!f.accepted)
              return -1;
          else
              return 0;
      }
      
  26. No menu Build , clique em BuildSolution.

Criar o pacote de bootstrapper personalizado

Para mostrar o prompt de privacidade aos usuários finais, você pode criar um pacote de bootstrapper personalizado para o aplicativo Update Consent Dialog e incluí-lo como pré-requisito em todos os seus aplicativos ClickOnce.

Este procedimento demonstra como criar um pacote de bootstrapper personalizado criando os seguintes documentos:

  • Um arquivo de manifesto product.xml para descrever o conteúdo do bootstrapper.

  • Um arquivo de manifesto package.xml para listar os aspetos específicos de localização do seu pacote, como cadeias de caracteres e os termos de licença de software.

  • Um documento para os termos de licença de software.

Etapa 1: Para criar o diretório bootstrapper

  1. Crie um diretório chamado UpdateConsentDialog no %PROGRAMFILES%\Microsoft SDKs\Windows\v7.0A\Bootstrapper\Packages.

    Observação

    Você pode precisar de privilégios administrativos para criar essa pasta.

  2. No diretório UpdateConsentDialog , crie um subdiretório chamado en.

    Observação

    Crie um novo diretório para cada localidade. Por exemplo, você pode adicionar subdiretórios para fr e de locales. Esses diretórios conteriam as cadeias de caracteres e pacotes de idiomas franceses e alemães, se necessário.

Etapa 2: Para criar o arquivo de manifesto product.xml

  1. Crie um arquivo de texto chamado product.xml.

  2. No arquivo product.xml , adicione o seguinte código XML. Certifique-se de não substituir o 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. Salve o arquivo no diretório de bootstrapper UpdateConsentDialog.

Etapa 3: Para criar o arquivo de manifesto package.xml e os termos de licença de software

  1. Crie um arquivo de texto chamado package.xml.

  2. No arquivo package.xml , adicione o seguinte código XML para definir a localidade e incluir os termos de licença de software. Certifique-se de não substituir o 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. Salve o arquivo no subdiretório en no diretório bootstrapper UpdateConsentDialog.

  4. Crie um documento chamado eula.rtf para os termos de licença de software.

    Observação

    Os termos de licença de software devem incluir informações sobre licenciamento, garantias, responsabilidades e leis locais. Esses arquivos devem ser específicos da localidade, portanto, certifique-se de que o arquivo seja salvo em um formato que ofereça suporte a caracteres MBCS ou UNICODE. Consulte o seu departamento jurídico sobre o conteúdo dos termos de licença de software.

  5. Salve o documento no subdiretório en no diretório UpdateConsentDialog bootstrapper.

  6. Se necessário, crie um novo arquivo de manifesto package.xml e um novo documento eula.rtf para os termos de licença de software para cada localidade. Por exemplo, se você criou subdiretórios para fr e de locales, crie arquivos de manifesto package.xml separados e termos de licença de software e salve-os nos subdiretórios fr e de.

No Visual Studio, você pode definir o aplicativo de Consentimento de Atualização como um pré-requisito.

  1. No Gerenciador de Soluções, clique no nome do aplicativo que você deseja implantar.

  2. No menu Projeto, clique em ProjectNamePropriedades.

  3. Clique na página Publicar e, em seguida, clique em Pré-requisitos.

  4. Selecione Caixa de diálogo Atualizar consentimento.

    Observação

    Talvez seja necessário fechar e reabrir o Visual Studio para ver a caixa de diálogo Consentimento de atualização na caixa de diálogo Pré-requisitos.

  5. Clique em OK.

Criar e testar o programa de instalação

Depois de definir o aplicativo de Consentimento de Atualização como um pré-requisito, você pode gerar o instalador e o bootstrapper para seu aplicativo.

Para criar e testar o programa de instalação sem clicar em "Concordo"

  1. No Gerenciador de Soluções, clique no nome do aplicativo que você deseja implantar.

  2. No menu Projeto, clique em ProjectNamePropriedades.

  3. Clique na página Publicar e, em seguida, clique em Publicar Agora.

  4. Se a saída de publicação não abrir automaticamente, navegue até a saída de publicação.

  5. Execute o programaSetup.exe .

    O programa de instalação mostra o contrato de licença de software Update Consent Dialog.

  6. Leia o contrato de licença de software e clique em Aceitar.

    O aplicativo Update Consent Dialog (Caixa de diálogo de consentimento de atualização) é exibido e mostra o seguinte texto: O aplicativo que você está prestes a instalar verifica as atualizações mais recentes na Web. Ao clicar em Concordo, você autoriza o aplicativo a verificar atualizações automaticamente na Internet.

  7. Feche o aplicativo ou clique em Cancelar.

    O aplicativo mostra um erro: Ocorreu um erro ao instalar componentes do sistema para ApplicationName. A instalação não pode continuar até que todos os componentes do sistema tenham sido instalados com êxito.

  8. Clique em Detalhes para mostrar a seguinte mensagem de erro: Falha na instalação da caixa de diálogo Consentimento de atualização de componente com a seguinte mensagem de erro: "O contrato de atualização automática não é aceito." Falha na instalação dos seguintes componentes: - Caixa de diálogo de consentimento de atualização

  9. Clique em Fechar.

Para criar e testar o programa de instalação clicando em Concordo

  1. No Gerenciador de Soluções, clique no nome do aplicativo que você deseja implantar.

  2. No menu Projeto, clique em ProjectNamePropriedades.

  3. Clique na página Publicar e, em seguida, clique em Publicar Agora.

  4. Se a saída de publicação não abrir automaticamente, navegue até a saída de publicação.

  5. Execute o programaSetup.exe .

    O programa de instalação mostra o contrato de licença de software Update Consent Dialog.

  6. Leia o contrato de licença de software e clique em Aceitar.

    O aplicativo Update Consent Dialog (Caixa de diálogo de consentimento de atualização) é exibido e mostra o seguinte texto: O aplicativo que você está prestes a instalar verifica as atualizações mais recentes na Web. Ao clicar em Concordo, você autoriza o aplicativo a verificar atualizações automaticamente na Internet.

  7. Clique em Concordo e, em seguida, clique em Continuar.

    O aplicativo começa a ser instalado.

  8. Se a caixa de diálogo Instalação do aplicativo for exibida, clique em Instalar.