Criação de aplicativos de ClickOnce para outras pessoas para implantar
Nem todos os desenvolvedores que estão criando ClickOnce implantações planejam implantar os próprios aplicativos. Muitas delas Basta empacotar seus aplicativos usando o ClickOnce e, em seguida, entregar os arquivos para um cliente, como, por exemplo, uma grande corporação. O cliente ficará responsável por que hospeda o aplicativo em sua rede. Este tópico discute alguns dos problemas inerentes a tais deployments em versões do.NET Framework anterior à versão 3.5. Ele então descreve uma nova solução fornecida usando o novo "uso manifesto para confiança" recurso na.NET Framework 3.5. Finalmente, ele conclui com as estratégias recomendadas para a criação de implantações de ClickOnce para os clientes que ainda estão usando versões antigas do.NET Framework.
Problemas envolvidos na criação de implantações para clientes
Vários problemas ocorrem quando você planeja fornecer uma implantação de um cliente. A primeira questão está relacionada à assinatura de código. Para ser implantado em uma rede, o manifesto de implantação e o manifesto de aplicativo de uma implantação de ClickOnce devem ser assinadas com um certificado digital. Isso suscita a pergunta de se usar o certificado do desenvolvedor ou do cliente ao assinar os manifestos.
A questão de certificado a ser usado é essencial, como a identidade do aplicativo de ClickOnce baseia-se a assinatura digital do manifesto de implantação. Se o desenvolvedor assina o manifesto de implantação, ele pode levar a conflitos se o cliente é uma grande empresa e mais de uma divisão da empresa implanta uma versão personalizada do aplicativo.
Por exemplo, digamos que a Adventure Works tem um departamento de finanças e o departamento de recursos humanos. Ambos os departamentos de um aplicativo de ClickOnce da Microsoft Corporation que gera relatórios dos dados armazenados em um banco de dados SQL de licença. A Microsoft fornece a cada departamento com uma versão do aplicativo que é personalizado para seus dados. Se os aplicativos são assinados com o mesmo certificado Authenticode, um usuário que tenta usar ambos os aplicativos encontraria um erro, como ClickOnce seria considerar o segundo aplicativo como sendo idênticas ao primeiro. Nesse caso, o cliente poderia enfrentar efeitos colaterais imprevisíveis e indesejados que incluem a perda de quaisquer dados armazenados localmente pelo aplicativo.
Um problema adicional relacionado à assinatura de código é o deploymentProvider o elemento no manifesto de implantação, que informa ao ClickOnce onde procurar por atualizações do aplicativo. Este elemento deve ser adicionado para o manifesto de implantação antes de assiná-lo. Se este elemento for adicionado posteriormente, o manifesto de implantação deve ser assinado novamente.
Exigir que o cliente assinar o manifesto de implantação
Uma solução para esse problema de implantações de não-exclusivos é para ter o sinal do desenvolvedor o manifesto do aplicativo e o cliente assinar o manifesto de implantação. Embora essa abordagem funcione, ele apresenta outros problemas. Desde que um certificado Authenticode deve permanecer um ativo protegido, o cliente não pode dar apenas o certificado para o desenvolvedor para assinar a implantação. Enquanto o cliente pode assinar a implantação se manifestam usando ferramentas disponíveis gratuitamente com o.NET Framework SDK, isso pode exigir conhecimento técnico mais que o cliente está disposto ou capaz de fornecer. Em tais casos, o desenvolvedor geralmente cria um aplicativo, site ou outro mecanismo através do qual o cliente pode enviar a sua versão do aplicativo para assinatura.
O impacto do cliente, assinatura de segurança de aplicativos de ClickOnce
Mesmo que o desenvolvedor e o cliente concordam que o cliente deve assinar o manifesto de aplicativo, isso gera outros problemas que cercam a identidade do aplicativo, especialmente à medida que ele se aplica à implantação de aplicativos confiáveis. (Para obter mais informações sobre esse recurso, consulte Visão geral sobre implantação de aplicativos confiáveis.) Digamos que a Adventure Works deseja configurar seus computadores cliente para que qualquer aplicativo fornecido a ele pela Microsoft Corporation seja executado com confiança total. Se a Adventure Works assina o manifesto de implantação, o ClickOnce usará assinatura de segurança do trabalho de aventura para determinar o nível de confiança do aplicativo.
A criação de implantações de clientes usando o manifesto do aplicativo para confiança
ClickOnce na.NET Framework 3.5 contém um novo recurso que fornece uma nova solução de desenvolvedores e clientes para o cenário de como os manifestos devem ser assinados. O manifesto do aplicativo ClickOnce oferece suporte a um novo elemento chamado <useManifestForTrust> que permite que um desenvolvedor indicar que a assinatura digital do manifesto do aplicativo é o que deve ser usado para tomar decisões de confiança. O desenvolvedor usa ferramentas de empacotamento de ClickOnce — como, por exemplo, Visual Studio, MageUI.exe e Mage — para incluir este elemento no manifesto do aplicativo, bem como para incorporar o nome do Editor e o nome do aplicativo no manifesto.
Ao usar o <useManifestForTrust>, o manifesto de implantação não precisa ser assinado com um certificado Authenticode emitido por uma autoridade de certificação. Em vez disso, ele pode ser assinado com o que é conhecido como um certificado auto-assinado. Um certificado auto-assinado é gerado pelo cliente ou o desenvolvedor usando padrão.Ferramentas do NET Framework SDK e, em seguida, aplicada para o manifesto de implantação usando as ferramentas de implantação de ClickOnce padrão. Para obter mais informações, consulte O Makecert. exe (ferramenta de criação de certificado).
Usar um certificado auto-assinado para obter o manifesto de implantação apresenta diversas vantagens. Eliminando a necessidade do cliente obter ou criar seus próprios certificados Authenticode, <useManifestForTrust> simplifica a implantação para o cliente, permitindo que o desenvolvedor manter sua própria identidade de marca no aplicativo. O resultado é um conjunto de implantações assinados que são mais seguros e têm identidades de aplicativos exclusivo. Isso elimina o conflito potencial que pode ocorrer com a implantação do mesmo aplicativo para vários clientes.
Para obter informações passo a passo sobre como criar uma implantação de ClickOnce com <useManifestForTrust> habilitado, consulte Walkthrough: Manualmente, implantando um aplicativo de ClickOnce , que não exigem Re-de assinatura e que preserva as informações de identificação de marca.
Manifesto de aplicativo como para Works de confiança em tempo de execução
Para obter uma melhor compreensão de como funciona o usar o manifesto do aplicativo para confiança no tempo de execução, considere o exemplo a seguir. Um aplicativo de ClickOnce que se destina a.NET Framework 3.5 é criado pela Microsoft. O manifesto do aplicativo usa a <useManifestForTrust> elemento e é assinado pela Microsoft. A Adventure Works assina o manifesto de implantação usando um certificado auto-assinado. Os clientes do Adventure Works são configurados para confiar em qualquer aplicativo assinado pela Microsoft.
Quando um usuário clica em um link para o manifesto de implantação, o ClickOnce instala o aplicativo no computador do usuário. As informações do certificado e a implantação de identificar o aplicativo exclusivamente para ClickOnce no computador cliente. Se o usuário tenta instalar o mesmo aplicativo novamente a partir de um local diferente, o ClickOnce pode usar esta identidade para determinar que o aplicativo já existe no cliente.
Em seguida, ClickOnce examina o certificado Authenticode que é usado para assinar o manifesto do aplicativo determina o nível de confiança que darão a ClickOnce. Desde que a Adventure Works configurou seus clientes para confiar em qualquer aplicativo assinado pela Microsoft, este aplicativo de ClickOnce é concedido confiança total. Para obter mais informações, consulte Visão geral sobre implantação de aplicativos confiáveis.
A criação de implantações de cliente para versões anteriores
Se um desenvolvedor está implantando aplicativos de ClickOnce para clientes que estiverem usando versões antigas do.NET Framework? As seções a seguir resumem as várias soluções recomendadas, juntamente com os benefícios e desvantagens de cada.
Implantações de sinal no nome do cliente
Uma estratégia de implantação possíveis é para o desenvolvedor criar um mecanismo para assinar as implantações em nome dos seus clientes, usando a chave particular do cliente. Isso impede que o desenvolvedor precisar gerenciar chaves particulares ou vários pacotes de implantação. O desenvolvedor apenas fornece a mesma implantação para cada cliente. Ele é o cliente para personalizá-lo para seu ambiente usando o serviço de autenticação.
Uma desvantagem desse método é o tempo e as despesas necessárias para implementá-lo. Enquanto um serviço pode ser construído usando as ferramentas fornecidas na.NET Framework SDK, ele adicionará mais tempo de desenvolvimento para o ciclo de vida do produto.
Como indicado anteriormente neste tópico, outra desvantagem é que a versão do cliente do aplicativo terá a mesma identidade do aplicativo, que poderia levar a conflitos. Se esta for uma preocupação, o desenvolvedor pode alterar o campo de nome é usado ao gerar o manifesto de implantação para dar um nome exclusivo de cada aplicativo. Isso irá criar uma identidade separada para cada versão do aplicativo e eliminar quaisquer possíveis conflitos de identidade. Este campo corresponde do -Name argumento para Mage e o nome campo o nome guia em MageUI.exe.
Por exemplo, digamos que o desenvolvedor criou um aplicativo chamado Application1. Em vez de criar uma única implantação com o campo de nome definido como Application1, o desenvolvedor pode criar várias implantações com uma variação específicos do cliente esse nome, como, por exemplo, CustomerA de Application1, Application1-CustomerB e assim por diante.
Implantar usando um pacote de instalação
Uma estratégia de implantação possíveis a segunda é gerar um projeto de instalação do Microsoft para executar a implantação inicial do aplicativo ClickOnce. Isso pode ser fornecida em um dos vários formatos diferentes: como uma implantação MSI, como um executável de instalação (.EXE), ou como um arquivo de gabinete (. cab), juntamente com um script em lotes.
Usando esta técnica, o desenvolvedor poderia fornecer ao cliente uma implantação que inclui os arquivos do aplicativo, o manifesto do aplicativo e um manifesto de implantação que serve como um modelo. O cliente executaria o programa de instalação solicitará-los para uma URL de implantação (servidor ou local do qual os usuários instalarão o aplicativo de ClickOnce do compartilhamento de arquivo), bem como um certificado digital. O aplicativo de instalação também pode escolher pedir opções adicionais de configuração de ClickOnce, como, por exemplo, o intervalo de verificação de atualização. Depois que essas informações são reunidas, o programa de instalação seria gere o manifesto de implantação real, assiná-lo e publicar o aplicativo de ClickOnce para o local de servidor designado.
Existem três maneiras para que o cliente pode assinar o manifesto de implantação nesta situação:
O cliente pode usar um certificado válido emitido por uma autoridade de certificação (CA).
Como uma variação nessa abordagem, o cliente pode escolher assinar seu manifesto de implantação com um certificado auto-assinado. A desvantagem é que ele fará com que o aplicativo exibir as palavras "Editor desconhecido" Quando o usuário é perguntado se deseja instalá-lo. No entanto, a vantagem é que ele impede que clientes menores não precisarão gastar tempo e dinheiro necessário para um certificado emitido por uma autoridade de certificação.
Finalmente, o desenvolvedor pode incluir seu próprio certificado auto-assinado no pacote de instalação. Isso introduz os problemas potenciais com a identidade do aplicativo discutidos neste tópico.
A desvantagem do método de projeto de implantação de instalação é o tempo e as despesas necessárias para construir um aplicativo de implantação personalizada.
Ter o cliente gere o manifesto de implantação
Uma estratégia de implantação possíveis a terceira é manualmente apenas os arquivos de aplicativo e o manifesto de aplicativo logoff para o cliente. Nesse cenário, o cliente é responsável pela usando o.NET Framework SDK para gerar e assinar o manifesto de implantação.
A desvantagem desse método é que ele requer que o cliente instalar o.Ferramentas do NET Framework SDK e fazer com que um desenvolvedor ou administrador do sistema que é qualificada para usá-los. Alguns clientes talvez demandam uma solução que requer pouco ou nenhum esforço técnico em sua parte.
Consulte também
Tarefas
Walkthrough: Manualmente, implantando um aplicativo de ClickOnce
Conceitos
A implantação de aplicativos de ClickOnce para teste e servidores de produção sem desistir