Observação
O acesso a essa página exige autorização. Você pode tentar entrar ou alterar diretórios.
O acesso a essa página exige autorização. Você pode tentar alterar os diretórios.
Há uma variedade de problemas com a segurança do ClickOnce, o controle de versão do aplicativo e a sintaxe de manifesto e a semântica que podem fazer com que uma implantação do ClickOnce não tenha êxito.
ClickOnce e Controle de Conta de Usuário do Windows
No Windows Vista e versões posteriores do Windows, os aplicativos são executados por padrão como um usuário padrão, mesmo que o usuário atual esteja conectado com uma conta que tenha permissões de administrador. Se um aplicativo precisar executar uma ação que exija permissões de administrador, ele informará ao sistema operacional, o que solicitará que o usuário insira suas credenciais de administrador. Esse recurso, chamado UAC (Controle de Conta de Usuário), impede que os aplicativos façam alterações que possam afetar todo o sistema operacional sem a aprovação explícita de um usuário. Os aplicativos do Windows declaram que exigem essa elevação de permissão especificando o requestedExecutionLevel atributo na trustInfo seção do manifesto do aplicativo.
Devido ao risco de expor aplicativos a ataques de elevação de segurança, os aplicativos ClickOnce não poderão solicitar elevação de permissão se o UAC estiver habilitado para o cliente. Qualquer aplicativo ClickOnce que tente definir o atributo requestedExecutionLevel como requireAdministrator ou highestAvailable não será instalado no Windows Vista e versões posteriores.
Em alguns casos, seu aplicativo ClickOnce pode tentar executar com permissões de administrador devido à lógica de detecção do instalador no Windows. Nesse caso, você pode definir o requestedExecutionLevel atributo no manifesto do aplicativo como asInvoker. Isso fará com que o próprio aplicativo seja executado sem elevação. O Visual Studio adiciona automaticamente esse atributo a todos os manifestos do aplicativo.
Se você estiver desenvolvendo um aplicativo que requer permissões de administrador durante todo o tempo de vida do aplicativo, considere implantar o aplicativo usando a tecnologia MSI (Windows Installer). Para obter mais informações, consulte as noções básicas do Windows Installer.
Cotas de aplicativos online e aplicativos de confiança parcial
Se o aplicativo ClickOnce for executado online em vez de por meio de uma instalação, ele deverá se ajustar à cota reservada para aplicativos online. Além disso, um aplicativo de rede executado em confiança parcial, como com um conjunto restrito de permissões de segurança, não pode ser maior que metade do tamanho da cota.
Observação
No ClickOnce para .NET Core e .NET 5 ou posterior, a confiança parcial, que requer a Segurança de Acesso ao Código, não tem suporte. No .NET Framework, o uso da Segurança de Acesso ao Código não é uma prática recomendada e não é recomendado.
Para obter mais informações e instruções sobre como alterar a cota de aplicativos online, consulte a visão geral do cache ClickOnce.
Problemas de controle de versão
Você poderá ter problemas se atribuir nomes fortes ao assembly e incrementar o número de versão do assembly para refletir uma atualização do aplicativo. Qualquer assembly compilado com referência a um assembly com nome forte deve ser recompilado, senão tentará referenciar uma versão anterior. A montagem fará isso porque está usando o valor da versão antiga em sua requisição de associação.
Por exemplo, digamos que você tenha um assembly de nome forte em seu próprio projeto com a versão 1.0.0.0. Depois de compilar o assembly, adicione-o como uma referência ao projeto que contém seu aplicativo principal. Se você atualizar o assembly, incrementar a versão para 1.0.0.1 e tentar implantá-lo sem recompilar o aplicativo, o aplicativo não poderá carregar o assembly em tempo de execução.
Esse erro só poderá ocorrer se você estiver editando os manifestos do ClickOnce manualmente; você não deverá experimentar esse erro se gerar sua implantação usando o Visual Studio.
Especificar assemblies individuais do .NET Framework no manifesto
Seu aplicativo falhará ao carregar se você editou manualmente uma implantação do ClickOnce para fazer referência a uma versão mais antiga de um assembly do .NET Framework. Por exemplo, se você adicionou uma referência ao assembly System.Net para uma versão do .NET Framework antes da versão especificada no manifesto, ocorrerá um erro. Em geral, você não deve tentar especificar referências a assemblies individuais do .NET Framework, pois a versão do .NET Framework na qual seu aplicativo é executado é especificada como uma dependência no manifesto do aplicativo.
Problemas de análise de manifesto
Os arquivos de manifesto usados pelo ClickOnce são arquivos XML e devem ser bem formados e válidos: eles devem obedecer às regras de sintaxe XML e usar apenas elementos e atributos definidos no esquema XML relevante.
Algo que pode causar problemas em um arquivo de manifesto é selecionar um nome para seu aplicativo que contém um caractere especial, como uma aspa única ou dupla. O nome do aplicativo faz parte de sua identidade ClickOnce. No momento, o ClickOnce não analisa identidades que contêm caracteres especiais. Se o aplicativo não for ativado, verifique se você está usando apenas caracteres alfabéticos e numéricos para o nome e tente implantá-lo novamente.
Se você editou manualmente seus arquivos de manifesto de implantação ou aplicação, pode ter danificado-os sem querer. O manifesto corrompido impedirá uma instalação do ClickOnce correta. Você pode depurar esses erros em tempo de execução clicando em Detalhes na caixa de diálogo Erro ClickOnce e lendo a mensagem de erro no log. O log listará uma das seguintes mensagens:
Uma descrição do erro de sintaxe e o número de linha e a posição do caractere em que o erro ocorreu.
O nome de um elemento ou atributo usado em violação do esquema do manifesto. Se você tiver adicionado XML manualmente aos seus manifestos, precisará comparar suas adições com os esquemas de manifesto. Para obter mais informações, consulte o manifesto de implantação do ClickOnce e o manifesto do aplicativo ClickOnce.
Um conflito de ID. As referências de dependência em manifestos de implantação e de aplicativo devem ser exclusivas tanto em seus atributos
namequanto em seus atributospublicKeyToken. Se ambos os atributos corresponderem entre dois elementos dentro de um manifesto, a análise de manifesto não terá êxito.
Precauções ao alterar manualmente manifestos ou aplicativos
Ao atualizar um manifesto do aplicativo, você deve assinar novamente o manifesto do aplicativo e o manifesto de implantação. O manifesto de implantação contém uma referência ao manifesto do aplicativo que inclui o hash desse arquivo e sua assinatura digital.
Precauções com o uso do provedor de implantação
O manifesto de implantação do ClickOnce tem uma deploymentProvider propriedade que aponta para o caminho completo do local de onde o aplicativo deve ser instalado e atendido:
<deploymentProvider codebase="http://myserver/myapp.application" />
Esse caminho é definido quando ClickOnce cria o aplicativo e é obrigatório para aplicativos instalados. O caminho aponta para o local padrão em que o instalador do ClickOnce instalará o aplicativo e procurará atualizações. Se você usar o comando xcopy para copiar um aplicativo ClickOnce para um local diferente, mas não alterar a deploymentProvider propriedade, o ClickOnce ainda fará referência ao local original quando tentar baixar o aplicativo.
Se você quiser mover ou copiar um aplicativo, também deverá atualizar o deploymentProvider caminho para que o cliente realmente instale a partir do novo local. Atualizar esse caminho é principalmente uma preocupação se você tiver instalado aplicativos. Para aplicativos online que são sempre iniciados por meio da URL original, a deploymentProvider configuração é opcional. Se deploymentProvider estiver definido, ele será honrado; caso contrário, a URL usada para iniciar o aplicativo será usada como a URL base para baixar arquivos de aplicativo.
Observação
Sempre que você atualizar o manifesto, também deverá assiná-lo novamente.
Conteúdo relacionado
Solucionar problemas de implantações do ClickOnceProteger Aplicativos ClickOnceEscolha uma estratégia de implantação do ClickOnce