Compartilhar via


Segurança, controle de controle de versão e manifesto problemas em implantações do 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 um ClickOnce implantação de não ser bem-sucedida.

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

In Windows Vista, aplicativos por padrão é executado sistema autônomo usuário padrão, mesmo se o usuário corrente estiver 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 ao sistema operacional, que, em seguida, o usuário para inserir suas credenciais de administrador.Esse recurso, que é chamado de controle de conta de usuário (UAC), impede que aplicativos façam alterações que afetem todo o sistema operacional sem aprovação explícita do usuário.Aplicativos Windows declarar que exigem isso permissão elevação, especificando o requestedExecutionLevel o atributo na trustInfo seção de manifesto do aplicativo.

Devido ao risco de expor 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. Any ClickOnce aplicativo que tenta conjunto seus requestedExecutionLevel atributo à requireAdministrator ou highestAvailable não será instalado em Windows Vista.

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

Se você estiver desenvolvendo um aplicativo que requer permissões de administrador para toda a tempo de vida do aplicativo, considere implantar o aplicativo usando a tecnologia Windows Installer (MSI) em vez disso.Para obter mais informações, consulte Visão geral de implantação do Windows Installer.

online aplicativo cotas e parcial confiança Applications

Se seu ClickOnce executa o aplicativo online em vez de através de uma instalação, ele deve ajuste-se de que a cota reservada para os aplicativos online. Além disso, um aplicativo de rede que é executado em confiança parcial, sistema autônomo com um conjunto restrito de permissões de segurança, não pode ser maior do que metade do dimensionar 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 do ClickOnce.

Problemas de controle de controle de versão

Você pode experiência problemas se você atribuir nomes fortes ao seu assembly e incrementar o número da versão 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 irá tentar isso porque o assembly está usando o valor da versão antiga em sua solicitação de ligação.

Por exemplo, digamos que você tem 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 sistema autônomo uma referência ao projeto que contém o aplicativo principal.Se você atualizar o assembly, incrementar a versão 1.0.0.1 e tentar implantar-lo sem recompilar o aplicativo também, o aplicativo não poderá carregar o assembly em time de execução.

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

Especificando individuais .NET estrutura Assemblies na guia Manifestar

Seu aplicativo não será carregada 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 sistema.NET para obter uma versão do .NET Framework anteriores à versão especificada no manifesto, em seguida, poderia ocorrer um erro. Em geral, você não deve tentar especificar referências individuais .NET Framework assemblies, sistema autônomo a versão do .NET Framework contra que seu aplicativo é executado é especificado sistema autônomo 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: Eles devem 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 o aplicativo que contém um caractere especial, tal sistema autônomo uma marca de aspas simples ou dupla.O nome do aplicativo faz parte de sua ClickOnce identidade. ClickOnce no momento não analisa as identidades que contêm caracteres especiais. Se seu aplicativo falha na ativar, certifique-se de que você estiver usando caracteres alfabético e numérico somente 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 impede que um correto ClickOnce instalação. Você pode depurar erros em time de execução clicando em Detalhes on the Erro do ClickOncecaixa 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 de linha e caractere posição em que 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 suas adições ao manifesto esquemas.Para obter mais informações, consulte Manifesto Deployment ClickOnce  e Manifesto de aplicativo ClickOnce.

  • Um conflito de ID.Referências de dependência nos manifestos de implantação e o aplicativo devem ser exclusivos no seu name e publicKeyToken atributos. Se ambos os atributos corresponderem entre quaisquer dois elementos dentro de um manifesto, análise do manifesto não terá êxito.

Precauções ao alterar manualmente manifestos ou aplicativos

Quando você atualização um aplicativo manifest, você deve reassinar manifesto do aplicativo e manifesto de implantação.O manifesto de implantação contém uma referência para o manifesto do aplicativo que inclui o hash do arquivo e sua assinatura digital.

Precauções com utilização do provedor de implantação

The ClickOnce manifesto de implantação possui um deploymentProvider propriedade que aponta para o caminho completo do local do onde o aplicativo deve ser instalado e atendido:

<deploymentProvider codebase="http://myserver/myapp.application" />

Esse caminho é conjunto quando ClickOnce cria o aplicativo e é obrigatório para aplicativos instalados. O caminho aponta para o local padrão onde o ClickOnce instalador irá instalar o aplicativo e procure por 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 referirá volta ao local original quando ele tenta baixar o aplicativo.

Se você deseja mover ou copiar um aplicativo, você também deve atualização o deploymentProvider caminho, para que o cliente realmente instala o novo local. Atualizando este caminho é principalmente uma preocupação, se você tiver instalado os aplicativos.Para aplicativos online que são iniciados sempre através da URL original, definindo o deploymentProvider é opcional. If deploymentProvider é definido, será respeitada; caso contrário, a URL usada para iniciar o aplicativo irá ser usada sistema autônomo a URL base para fazer o baixar de arquivos do aplicativo.

Observação:

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

Consulte também

Conceitos

Solucionando problemas de implantações do ClickOnce

Implantação ClickOnce e segurança

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

Visão geral sobre a implantação do ClickOnce