Share via


Diretrizes para a criação de aplicativos e componentes para execução lado a lado

Siga estas orientações Geral para criar aplicativos gerenciado ou componentes projetados para execução lado a lado:

  • Vincule identidade de tipo a uma determinada versão de um arquivo.

    O common linguagem tempo de execução vincula identidade de tipo a uma versão de arquivo específico por meio de assemblies de nome forte.Para criar um aplicativo ou componente para execução lado a lado, é necessário fornecer um nome forte todos os assemblies.Isso cria o tipo exato de identidade e garante que qualquer tipo de resolução será direcionada para o arquivo correto.Um assembly de nome forte contém versão, cultura e informações de publicador que o tempo de execução usa para localizar o arquivo correto para completar uma solicitação de ligação.

  • Use o armazenamento com reconhecimento de versão.

    O tempo de execução usa o cache de assembly global para fornecer armazenamento com reconhecimento de versão.O cache de assemblies global é uma estrutura de pastas com reconhecimento de versão instalada em cada computador que usa o .NET Framework.Assemblies instalados no cache global de assemblies não são substituídos quando uma nova versão do assembly é instalada.

  • Crie um aplicativo ou componente que é executado em isolamento.

    Um aplicativo ou componente que é executado em isolamento deve gerenciar os recursos para evitar conflitos quando duas instâncias do aplicativo ou componente são executados simultaneamente.O aplicativo ou componente também deve usar uma estrutura específica à versão de arquivo.

Isolamento de componentes e aplicativos

Uma chave para criar com êxito um aplicativo ou componente para execução lado a lado é isolamento.O aplicativo ou componente deve gerenciar todos os recursos, especialmente arquivo E/s, de maneira isolada.Siga estas diretrizes para garantir que seu aplicativo ou componente seja executado em isolamento:

  • Gravar no registro de uma maneira específica à versão.Armazenar valores em seções ou chaves que indicam a versão e não compartilhem informações ou estado entre as versões de um componente.Isso impede que dois aplicativos ou componentes executados ao mesmo time, substitua as informações.

  • Tornar objetos kernel nomeado específico da versão para que uma condição de corrida não ocorre.Por exemplo, uma condição de corrida ocorre quando dois sinais de duas versões do mesmo aplicativo aguardar em cada Outros.

  • Tornar arquivo e nomes de diretório com reconhecimento de versão.Isso significa que arquivo estruturas devem confiar nas informações de versão.

  • Crie contas de usuário e grupos de maneira específica à versão.Contas de usuário e grupos criados por um aplicativo devem ser identificados por versão.Não compartilhe contas de usuário e grupos entre as versões do aplicativo.

Instalando e Desinstalando versões

Ao projetar um aplicativo para execução lado a lado, siga estas diretrizes referentes a instalação e desinstalação de versões:

  • Não excluir informações do registro que pode ser necessária por outros aplicativos em execução com uma versão diferente do .NET estrutura.

  • Não substitua as informações no registro que pode ser necessária por outros aplicativos em execução com uma versão diferente do .NET estrutura.

  • Não cancelar o registro componentes COM que podem ser necessária por outros aplicativos em execução com uma versão diferente do .NET estrutura.

  • Não altere InprocServer32 ou outras entradas do registro para um servidor COM que já foi registrado.

  • Não exclua contas de usuários ou grupos que podem ser necessários por outros aplicativos em execução com uma versão diferente do .NET estrutura.

  • Não adicione qualquer coisa no registro que contém um caminho sem versões.

Número de versão e número da versão do assembly de arquivos

Versão do arquivo é um recurso de versão do Win32 não é usado pelo tempo de execução.Em geral, você deve atualizar a versão do arquivo, mesmo para uma QFE no local.Dois arquivos idênticos podem ter informações de versão de arquivo diferente e dois arquivos diferentes podem ter as mesmas informações sobre a versão do arquivo.

A versão assembly é usada pelo tempo de execução para ligação de assembly.Dois assemblies idênticos com números de versão diferentes são tratados sistema autônomo dois assemblies diferentes em tempo de execução.

The Ferramenta global cache de assemblies (Gacutil.exe) permite que você substitua um assembly quando somente o número de versão do arquivo é mais recente.O instalador geralmente não é instalado através de um assembly, a menos que o assembly número de versão é maior.

Consulte também

Conceitos

Redirecionamento de ligação de assembly

Determinar uma estratégia de serviços para aplicativos e componentes

Outros recursos

Conceitos básicos de execução lado a lado

Criando várias versões de um aplicativo ou componente