Partilhar via


Sobre montagens lado a lado

Uma assemblagem lado-a-lado do Windows é descrita por manifestações. Um assembly lado a lado contém uma coleção de recursos — um grupo de DLLs, classes do Windows, servidores COM, bibliotecas de tipos ou interfaces — que são sempre fornecidos a aplicativos juntos. Estes são descritos no manifesto da assembleia.

Normalmente, uma implementação lado a lado é um único DLL. Por exemplo, o assembly do Microsoft COMCTL32 é uma única DLL com um manifesto, enquanto o assembly de bibliotecas de tempo de execução do sistema de desenvolvimento Microsoft Visual C++ contém vários arquivos. As manifestações contêm metadados que descrevem assemblies lado a lado e dependências de assemblies lado a lado.

Os *side-by-side assemblies* são usados pelo sistema operativo como unidades fundamentais de nomenclatura, vinculação, controle de versão, implantação e configuração. Cada montagem lado a lado tem uma identidade única. Um dos atributos da identidade do assembly é a sua versão. Para obter mais informações, consulte Assembly Versions.

A partir do Windows XP, várias versões de assemblies paralelas podem ser usadas por aplicações executadas ao mesmo tempo. Os manifestos e o número da versão do assembly são usados pelo carregador para determinar a ligação correta das versões do assembly aos aplicativos. Montagens lado a lado e manifestos funcionam com aplicativos e o gerenciador lado a lado, conforme ilustrado na figura a seguir.

representação típica de de montagem lado a lado

No exemplo anterior, Comctl32.DLL versão 6.0 e Comctl32.DLL versão 5.0 estão no cache de assembly lado a lado e disponíveis para aplicativos. Quando uma aplicação chama para carregar a DLL, o gestor em paralelo determina se a aplicação tem uma dependência de versão descrita num manifesto. Se não houver nenhum manifesto relevante, o sistema carregará a versão padrão do assembly. Para o Windows XP, a versão 5.0 do Comctl32.DLL é o padrão do sistema. Se o gestor paralelo encontrar uma dependência da versão 6.0 declarada num manifesto, essa versão é carregada para executar com a aplicação.

Vários componentes principais de sistema estão a ser disponibilizados pela Microsoft como componentes lado a lado. Para obter mais informações, consulte Assemblies simultâneos suportados pela Microsoft. Os desenvolvedores de aplicativos também podem criar seus próprios assemblies lado a lado. Para obter mais informações, consulte Diretrizes para criar assemblies lado a lado. Em muitos casos, é possível atualizar aplicativos existentes para usar assemblies lado a lado sem ter que alterar o código do aplicativo.

Os desenvolvedores são incentivados a usar assemblies lado a lado para criar aplicativos isoladose atualizar aplicativos existentes em aplicativos isolados pelos seguintes motivos:

  • Os assemblies lado a lado reduzem a possibilidade de conflitos de versões de DLLs.
  • A partilha paralela de assemblies permite que várias versões de assemblies COM ou Windows sejam executadas ao mesmo tempo.
  • Os aplicativos e administradores podem atualizar a configuração do assembly em um global ou configuração por aplicativo base após a implantação. Por exemplo, uma aplicação pode ser atualizada para usar um assembly paralelo que inclui uma atualização sem ter que reinstalar a aplicação.