Compartilhar via


Aplicando atributos de dependente da versão

Se você estiver usando o.NET Framework versão 1.1 e posterior, você pode aplicar atributos de tempo de design para código gerenciado para ativação adequada dos tipos registrado no registro do Windows. Este tópico descreve quando aplicar o ComCompatibleVersionAttribute e TypeLibVersionAttribute atributos.

Gerado vs.GUIDs fixos

O Type Library Exporter (Tlbexp. exe) e o Ferramenta de registro do Assembly (Regasm. exe) com o /tlb opção gerar identificadores de classe (CLSIDs) com base no número de versão de um assembly exportado para uso por COM. Cada nova versão de um assembly que você exportar contém os CLSIDs que são exclusivas para essa versão do assembly. Um aplicativo COM usa o CLSID para identificar uma classe ao chamar o CoCreateInstance método.

Esse comportamento é útil quando uma nova versão do assembly é incompatível com versões anteriores. Por exemplo, se um ou mais tipos são removidos do novo conjunto, as versões antigas e nova são incompatíveis.

Observação

Ao contrário de CLSIDs, identificadores de programação (ProgIDs) não se alteram com cada nova versão de um assembly.Você deve aplicar o ProgIdAttribute para alterar manualmente o ProgID ao produzir um conjunto novo de incompatível.

No entanto, muitos assemblies são compatíveis com versões anteriores e seus desenvolvedores espera que os aplicativos usam a versão mais recente. Preservando os mesmos CLSIDs em várias versões do assembly (usando os GUIDs fixos), os aplicativos COM existentes podem consumir tipos na nova versão de um assembly, sem exigir que o assembly antigo esteja disponível e sem recompilar.

ComCompatibleVersionAttribute força todos os CLSIDs na versão atual do assembly a ser os mesmos CLSIDs em uma versão anterior. Para obter informações adicionais sobre como aplicar esse atributo, consulte o ComCompatibleVersionAttribute documentação de referência.

Versões da biblioteca de tipo

Um número de versão da biblioteca de tipo contém os números principais e secundários do assembly usado para produzir a ele. Em contraste, um número de versão do assembly tem quatro partes. Duas versões do assembly completamente diferente (1.0.0.0 e 1.2.500.0) produzem automaticamente versões de bibliotecas de tipo diferente (1.0 e 1.2); Entretanto, o mais perto incrementar versões (1.2.0.0 e 1.2.500.0) tanto produzem a mesma versão de biblioteca de tipo (1.2) quando exportado para uso por COM.

TypeLibraryVersionAttribute permite que você especifique um número de versão da biblioteca de tipo explicitamente em código gerenciado. Para obter informações adicionais sobre como usar esse atributo, consulte o TypeLibVersionAttribute documentação de referência.

Consulte também

Conceitos

Inicialização de tempo de execução a partir de um aplicativo COM

Chaves de registro dependente da versão

Configurando um aplicativo COM a execução de lado a lado

Componentes COM e execução de lado a lado

Outros recursos

Execução lado a lado para interoperabilidade COM