Segurança e implantação do ClickOnce

O ClickOnce é uma tecnologia de implantação que permite a você criar aplicativos baseados no Windows com atualização automática e que podem ser instalados e executados com interação mínima do usuário. O Visual Studio fornece suporte completo para publicar e atualizar aplicativos implantados com a tecnologia ClickOnce se você desenvolveu seus projetos com Visual Basic e Visual C#. Para obter informações sobre como implantar aplicativos do Visual C++, consulte Implantação do ClickOnce para aplicativos do Visual C++.

A implantação do ClickOnce supera três problemas principais na implantação:

  • Dificuldades na atualização de aplicativos. Com a implantação do Microsoft Windows Installer, sempre que um aplicativo é atualizado, o usuário pode instalar uma atualização, um arquivo msp e aplicá-la ao produto instalado. Com a implantação do ClickOnce, é possível fornecer atualizações automaticamente. Somente as partes do aplicativo que foram alteradas são baixadas e, em seguida, o aplicativo completo e atualizado é reinstalado de uma nova pasta lado a lado.

  • Impacto no computador do usuário. Com a implantação do Windows Installer, os aplicativos geralmente dependem de componentes compartilhados, com potencial para conflitos de controle de versão. Com a implantação do ClickOnce, cada aplicativo é independente e não pode interferir em outros aplicativos.

  • Permissões de segurança. A implantação do Windows Installer requer permissões administrativas e permite apenas a instalação limitada do usuário. A implantação do ClickOnce permite que usuários não administrativos instalem e concedam apenas as permissões de Segurança de Acesso ao Código necessárias para o aplicativo.

    No passado, esses problemas podiam fazer os desenvolvedores decidirem criar aplicativos Web em vez de aplicativos do Windows, sacrificando uma interface do usuário avançada para facilitar a instalação. Usando aplicativos implantados usando o ClickOnce, é possível ter o melhor de ambas as tecnologias.

O que é um aplicativo ClickOnce?

Um aplicativo ClickOnce é qualquer Windows Presentation Foundation (.xbap), Windows Forms (.exe), aplicativo de console (.exe) ou solução do Office (.dll) publicada usando a tecnologia ClickOnce. Você pode publicar um aplicativo ClickOnce de três maneiras diferentes: de uma página da Web, de um compartilhamento de arquivos de rede ou de mídia herdada, como um CD-ROM. Um aplicativo ClickOnce pode ser instalado no computador de um usuário final e executado localmente mesmo quando o computador está offline ou pode ser executado em um modo somente online sem instalar permanentemente nada no computador do usuário final. Para obter mais informações, consulte Escolher uma estratégia de implantação do ClickOnce.

Os aplicativos ClickOnce podem ser atualizados automaticamente. Eles podem verificar se há versões mais recentes à medida que ficam disponíveis e substituem automaticamente todos os arquivos atualizados. O desenvolvedor pode especificar o comportamento da atualização; um administrador de rede também pode controlar estratégias de atualização, marcando uma atualização como obrigatória, por exemplo. As atualizações também pode ser revertidas para uma versão anterior pelo usuário final ou por um administrador. Para obter mais informações, confira Escolher uma estratégia de atualização do ClickOnce.

Como os aplicativos ClickOnce são isolados, a instalação ou execução de um aplicativo ClickOnce não pode interromper aplicativos existentes. Os aplicativos ClickOnce são autossuficientes. Cada aplicativo ClickOnce é instalado e executado em um cache seguro por usuário e por aplicativo. Os aplicativos ClickOnce são executados nas zonas de segurança da Internet ou da Intranet. Se necessário, o aplicativo poderá solicitar permissões de segurança elevadas. Para obter mais informações, consulte Proteger aplicativos ClickOnce.

Como funciona a segurança do ClickOnce

A principal segurança do ClickOnce é baseada em certificados, políticas de segurança de acesso ao código e no prompt de confiança do ClickOnce.

Certificados

Os certificados Authenticode são usados para verificar a autenticidade do editor do aplicativo. Usando o Authenticode para implantação de aplicativos, o ClickOnce ajuda a impedir que um programa prejudicial se retrate como um programa legítimo proveniente de uma fonte estabelecida e confiável. Opcionalmente, os certificados também podem ser usados para assinar o aplicativo e os manifestos de implantação para provar que os arquivos não foram adulterados. Para obter mais informações, consulte ClickOnce e Authenticode. Os certificados também podem ser usados para configurar computadores cliente para ter uma lista de editores confiáveis. Se um aplicativo vier de um editor confiável, ele poderá ser instalado sem qualquer interação do usuário. Para saber mais, confira Visão geral da implantação de aplicativos confiáveis.

Segurança de acesso do código

A segurança de acesso ao código ajuda a limitar o acesso que o código tem para recursos protegidos. Na maioria dos casos, você pode escolher zonas da Internet ou Intranet local para limitar as permissões. Use a página Segurança no ProjectDesigner para solicitar a zona apropriada para o aplicativo. Também é possível depurar aplicativos com permissões restritas para emular a experiência do usuário final. Para obter mais informações, consulte Segurança de acesso do código para aplicativos ClickOnce.

Prompt de confiança ClickOnce

Se o aplicativo solicitar mais permissões do que a zona permite, o usuário final pode tomar uma decisão de confiança. O usuário final pode decidir se aplicativos ClickOnce, como aplicativos Windows Forms, aplicativos Windows Presentation Foundation, aplicativos de console, aplicativos de navegador XAML e soluções do Office são confiáveis para serem executados. Para obter mais informações, consulte Como configurar o comportamento do prompt de confiança do ClickOnce.

Como funciona a implantação do ClickOnce

A arquitetura de implantação principal do ClickOnce baseia-se em dois arquivos de manifesto XML: um manifesto do aplicativo e um manifesto de implantação. Os arquivos são usados para descrever de onde os aplicativos ClickOnce são instalados, como são atualizados e quando são atualizados.

Publicar aplicativos ClickOnce

O manifesto do aplicativo descreve o próprio aplicativo. Isso inclui os assemblies, as dependências e os arquivos que compõem o aplicativo, as permissões necessárias e o local em que as atualizações estarão disponíveis. O desenvolvedor de aplicativos cria o manifesto do aplicativo usando o Assistente de Publicação no Visual Studio (Ferramenta de publicação para .NET Core e .NET 5+) ou o Manifest Generation and Editing Tool (Mage.exe) no SDK (Software Development Kit) do Windows. Para obter mais informações, consulte:

O manifesto de implantação descreve como o aplicativo é implantado. Isso inclui o local do manifesto do aplicativo e a versão do aplicativo que os clientes devem executar.

Observação

No ClickOnce para .NET Core 3.1 e .NET 5 ou posterior, use dotnet-mage.exe em vez de Mage.exe. Para obter mais informações, confira ClickOnce para .NET.

Implantar aplicativos ClickOnce

Depois de criado, o manifesto de implantação é copiado para a localização de implantação. Pode ser um servidor Web, um compartilhamento de arquivo de rede ou uma mídia herdada como um CD. O manifesto do aplicativo e todos os arquivos de aplicativo também são copiados para um local de implantação especificado no manifesto de implantação. Pode ser igual à localização de implantação ou não. Ao usar o Assistente de Publicação no Visual Studio, as operações de cópia são executadas automaticamente.

Instalar aplicativos ClickOnce

Depois de colocado na localização de implantação, os usuários finais podem baixar e instalar o aplicativo clicando em um ícone que representa o arquivo de manifesto de implantação em uma página da Web ou em uma pasta. Na maioria dos casos, o usuário final recebe uma caixa de diálogo simples solicitando que o usuário confirme a instalação, após a qual a instalação continua e o aplicativo é iniciado sem intervenção adicional. Nos casos em que o aplicativo requer permissões elevadas ou se o aplicativo não é assinado por um certificado confiável, a caixa de diálogo também solicita que o usuário conceda permissão antes que a instalação possa continuar. Embora as instalações do ClickOnce sejam por usuário, a elevação de permissão pode ser necessária se houver pré-requisitos que exijam privilégios de administrador. Para mais informações sobre as permissões elevadas, consulte Proteção de aplicativos ClickOnce.

Os certificados podem ser confiáveis no computador ou no nível empresarial, para que os aplicativos ClickOnce assinados com um certificado confiável possam ser instalados silenciosamente. Para obter mais informações sobre os certificados confiáveis, consulte Visão geral da implantação de aplicativos confiáveis.

O aplicativo pode ser adicionado ao menu Iniciar do usuário e ao grupo Adicionar ou Remover Programas no Painel de Controle. Ao contrário de outras tecnologias de implantação, nada é adicionado à pasta Arquivos de Programas ou ao Registro, e nenhum direito administrativo é necessário para a instalação

Observação

Também é possível impedir que o aplicativo seja adicionado ao menu Iniciar e ao grupo Adicionar ou Remover Programas, fazendo com que se comporte como um aplicativo Web. Para obter mais informações, consulte Escolher uma estratégia de implantação do ClickOnce.

Atualizar aplicativos ClickOnce

Quando os desenvolvedores de aplicativos criam uma versão atualizada do aplicativo, eles geram um novo manifesto do aplicativo e copiam arquivos para um local de implantação, em geral, uma pasta irmão para a pasta de implantação do aplicativo original. O administrador atualiza o manifesto de implantação para que ele aponte para a localização da nova versão do aplicativo.

Observação

O Assistente de Publicação no Visual Studio pode ser usado para executar essas etapas. Para .NET Core e .NET 5+, a ferramenta Publicar fornece estas etapas.

Além da localização da implantação, o manifesto de implantação também contém uma localização de atualização (uma página da Web ou um compartilhamento de arquivo na rede), em que o aplicativo verifica a existência de versões atualizadas. As propriedades Publicar do ClickOnce são usadas para especificar quando e com que frequência o aplicativo deve verificar se há atualizações. O comportamento de atualização pode ser especificado no manifesto de implantação ou pode ser apresentado como opções de usuário na interface do usuário do aplicativo por meio das APIs do ClickOnce. Além disso, as propriedades Publish podem ser empregadas para tornar as atualizações obrigatórias ou para a reversão para uma versão anterior. Para obter mais informações, confira Escolhendo uma estratégia de atualização do ClickOnce.

Instaladores de terceiros

Você pode personalizar o instalador do ClickOnce para instalar componentes de terceiros junto com seu aplicativo. Você deve ter o pacote redistribuível (.exe ou .msi) e descrever o pacote com um manifesto de produto neutro em idioma e um manifesto de pacote específico do idioma. Para obter mais informações, confira Criar pacotes de inicialização.

Ferramentas do ClickOnce

A tabela a seguir mostra as ferramentas que você pode usar para gerar, editar, assinar e assinar novamente os manifestos de aplicativo e implantação. Para .NET Core e .NET 5+, opções semelhantes aos atributos do MSBuild são definidas usando o perfil Publicar.

Ferramenta Descrição
Página Segurança, Designer de Projeto Assinar os manifestos de aplicativo e implantação Para .NET Core e .NET 5+, essas configurações estão no perfil Publicar.
Página de Publicação, Designer de Projeto Gera e edita os manifestos de aplicativo e implantação para aplicativos Visual Basic e Visual C#. Para .NET Core e .NET 5+, essas configurações estão no perfil Publicar.
Mage.exe (Manifest Generation and Editing Tool) Gera os manifestos de aplicativo e implantação para aplicativos Visual Basic, Visual C# e Visual C++.

Assina e assina novamente os manifestos de aplicativo e de implantação.

Pode ser executado em scripts de lote e no prompt de comando.
dotnetmage.exe (Manifest Generation and Editing Tool) Gera os manifestos de aplicativo e implantação para aplicativos .NET 5+ C# e Visual Basic. O uso é equivalente a Mage.exe.

Assina e assina novamente os manifestos de aplicativo e de implantação.

Pode ser executado em scripts de lote e no prompt de comando.
MageUI.exe (Manifest Generation and Editing Tool, cliente gráfico) Gera e edita os manifestos de aplicativo e implantação.

Assina e assina novamente os manifestos de aplicativo e de implantação.
Tarefa GenerateApplicationManifest Gera o manifesto do aplicativo.

Pode ser executado no MSBuild. Para mais informações, confira veja Referência do MSBuild.
Tarefa GenerateDeploymentManifest Gera um manifesto de implantação.

Pode ser executado no MSBuild. Para mais informações, confira veja Referência do MSBuild.
Tarefa SignFile Assinar os manifestos de aplicativo e implantação

Pode ser executado no MSBuild. Para mais informações, confira veja Referência do MSBuild.
Microsoft.Build.Tasks.Deployment.ManifestUtilities Desenvolva seu próprio aplicativo para gerar o aplicativo e os manifestos de implantação.

A tabela a seguir mostra a versão .NET Framework necessária para dar suporte a aplicativos ClickOnce nesses navegadores.

Navegador Versão do .NET Framework
Internet Explorer 2.0, 3.0, 3.5, 3.5 SP1, 4
Firefox 2.0 SP1, 3.5 SP1, 4
Chrome 3,5
Microsoft Edge 3,5