Compartilhar via


Segurança, controle de versão e problemas de manifesto em implantações de ClickOnce

Há uma variedade de problemas com ClickOnce segurança, controle de versão do aplicativo e manifesto de sintaxe e semântica que pode causar uma ClickOnce implantação não seja bem-sucedida.

ClickOnce e o controle de conta de usuário do Windows Vista

Na Windows Vista, aplicativos, por padrão são executados como usuário padrão, mesmo se o usuário atual está conectado com uma conta que tenha permissões de administrador.Se um aplicativo deve executar uma ação que requer permissões de administrador, ele informa o sistema operacional, que, em seguida, solicita que o usuário insira suas credenciais de administrador.Esse recurso, o que é chamado de controle de conta de usuário (UAC), impede que aplicativos façam alterações que podem afetar todo o sistema operacional sem a aprovação explícita do usuário.Aplicativos Windows declarar que exigem a elevação de permissões, especificando a requestedExecutionLevel o atributo na trustInfo seção de manifesto do aplicativo.

Devido ao risco de expor os aplicativos a ataques de elevação de segurança, ClickOnce aplicativos não é possível solicitar a elevação de permissões se o UAC estiver habilitado para o cliente.Qualquer ClickOnce aplicativo que tenta definir suas requestedExecutionLevel para o atributo requireAdministrator ou highestAvailable não será instalado em Windows Vista.

Em alguns casos, o ClickOnce aplicativo pode tentar executar com permissões de administrador por causa da lógica de detecção de instalador em Windows Vista.Nesse caso, você pode definir a requestedExecutionLevel atributo no manifesto do aplicativo para asInvoker.Isso fará com que o aplicativo seja executado sem elevação. Visual Studio 2008 adiciona automaticamente esse atributo para todos os manifestos de aplicativo.

Se você estiver desenvolvendo um aplicativo que requer permissões de administrador para o tempo de vida inteiro do aplicativo, você deve considerar a implantar o aplicativo usando a tecnologia do Windows Installer (MSI) em vez disso.Para obter mais informações, consulte Noções básicas do Windows Installer.

Aplicativos de confiança on-line de cotas do aplicativo e parcial

Se sua ClickOnce aplicativo é executado on-line em vez de através de uma instalação, ele deve caber dentro da cota reservada para os aplicativos on-line.Além disso, um aplicativo de rede que é executado em confiança parcial, como com um conjunto restrito de permissões de segurança, não pode ser maior do que metade do tamanho da cota.

Para obter mais informações e instruções sobre como alterar a cota de inscrição online, consulte Visão geral do Cache de ClickOnce.

Problemas de versionamento

Você pode ter problemas se você atribuir nomes fortes ao seu assembly e incrementa o número de versão do assembly para refletir uma atualização do aplicativo.Qualquer assembly compilado com uma referência a um assembly de nome forte deve propriamente dito ser recompilado ou assembly irá tentar fazer referência a versão mais antiga.O assembly fará isso porque o assembly está usando o valor da versão antiga em sua solicitação de ligaçã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.Após compilar o assembly, adicioná-lo como uma referência para o projeto que contém o seu aplicativo principal.Se você atualizar o assembly, incrementa a versão 1.0.0.1 e tenta implantá-lo sem também recompilar o aplicativo, o aplicativo não poderá carregar o assembly em tempo de execução.

Este erro pode ocorrer somente se você estiver editando seu ClickOnce manifestos manualmente; Esse erro não deve ocorrer se você gerar sua implantação usando Visual Studio 2005.

A especificação do indivíduo.NET Framework Assemblies no manifesto

Seu aplicativo falhará carregar se você tiver editado manualmente um ClickOnce implantação para fazer referência a uma versão mais antiga de um .NET Framework assembly.Por exemplo, se você adicionou uma referência ao assembly System.Net para obter uma versão do .NET Framework anteriores à versão especificada no manifesto, um erro poderia ocorrer.Em geral, você não deve tentar especificar referências ao indivíduo .NET Framework assemblies, como a versão do .NET Framework contra o qual seu aplicativo é executado é especificada como uma dependência no manifesto do aplicativo.

Problemas de análise do manifesto

Os arquivos de manifesto que são usados por ClickOnce são arquivos XML, e devem ser bem formado e válido: precisam obedecer as regras de sintaxe XML e usar apenas os elementos e atributos definidos no esquema XML relevante.

Algo que pode causar problemas em um arquivo de manifesto é selecionando um nome para seu aplicativo que contém um caractere especial, como, por exemplo, uma aspa simples ou dupla.O nome do aplicativo faz parte de sua ClickOnce identidade.ClickOnceno momento não analisa as identidades que contêm caracteres especiais.Se não conseguir ativar seu aplicativo, certifique-se de que você está usando somente alfabéticos e numéricos para o nome e tenta implantá-lo novamente.

Se você tiver editado manualmente seus manifestos de implantação ou aplicativo, você pode ter acidentalmente corrompido-los.Manifesto corrompido impedirá um correto ClickOnce instalação.Você pode depurar tais erros em tempo de execução, clicando em detalhes no Erro de ClickOnce caixa de diálogo e ler a mensagem de erro no log.O log irá listar uma das seguintes mensagens:

  • Uma descrição do erro de sintaxe e o número da linha e caractere posição onde ocorreu o erro.

  • O nome de um elemento ou atributo usado em violação do esquema do manifesto.Se você tiver adicionado o XML manualmente para seus manifestos, você terá que comparar as adições os esquemas de manifesto.Para obter mais informações, consulte Manifesto de implantação de ClickOnce e Manifesto de aplicativo de ClickOnce.

  • Um conflito de ID.Referências de dependência nos manifestos de implantação e o aplicativo devem ser exclusivas em ambas as suas name e publicKeyToken atributos.Se ambos os atributos correspondem entre quaisquer dois elementos dentro de um manifesto, análise de manifesto não terá êxito.

Precauções ao alterar manualmente os manifestos ou aplicativos

Quando você atualiza um manifesto de 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 do arquivo e sua assinatura digital.

ms228996.collapse_all(pt-br,VS.110).gifPrecauções com o uso do provedor de implantação

O ClickOnce o manifesto de implantação tem um 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 onde o ClickOnce installer instalará o aplicativo e procure atualizações.Se você usar o xcopy comando para copiar um ClickOnce aplicativo para um local diferente, mas não alterar o deploymentProvider propriedade, ClickOnce ainda farão referência volta ao local original quando ele tenta baixar o aplicativo.

Se você deseja mover ou copiar um aplicativo, você deve também atualizar o deploymentProvider caminho, para que o cliente realmente instala da nova localização.Atualizando este caminho é principalmente uma preocupação, se você tiver instalado os aplicativos.Para aplicativos on-line que sempre serão inicializados através da URL original, definindo a deploymentProvider é opcional.Se deploymentProvider estiver definida, ela será respeitada; Caso contrário, a URL usada para iniciar o aplicativo será usada como a URL base para fazer o download de arquivos do aplicativo.

ObservaçãoObservação

Toda vez que você atualize o manifesto deve também assiná-lo novamente.

Consulte também

Conceitos

Solucionando problemas de implantações de ClickOnce

Proteção de aplicativos de ClickOnce

Escolhendo uma estratégia de implantação de ClickOnce