Chaves de registro dependente de versão

Mais assemblies gerenciado devem ser registrados no registro do Windows para uso pelo COM.Assemblies usando disponível de inscrição interoperabilidade COM são isentos desse requisito.

Você pode registrar um assembly, usando o Ferramenta de inscrição do assembly (regasm.exe) ou métodos expostos pelo RegistrationServices classe. Cada mecanismo cria chaves de registro dependente de versão que permitem que várias versões do mesmo conjunto de módulos (assembly) para executar lado a lado em um computador.

Este tópico descreve como o regasm.exe adiciona e remove entradas de registro COM a habilitação.Se você estiver escrevendo um programa de instalação personalizado, este tópico pode ajudar você Noções básicas sobre os requisitos de inscrição de execução lado a lado interoperabilidade COM.

Layout de registro para chaves dependente de versão

Ao registrar um assembly inicialmente, regasm.exe cria um conjunto de chaves de nível superior para cada classe no conjunto de módulos (assembly) e adiciona uma subchave sob HKEY CLASSES\raiz\CLSID\ {} \InprocServer32 chave para identificar exclusivamente a versão do assembly.O layout do registro seguinte mostra a subchave para className versão 1.0.0.0.

CLSID\{}
@="namespaceName.className"
CLSID\{}\InprocServer32
@="mscoree.dll"
ThreadingModel = "Both" 
Class="namespaceName.className"
Assembly="name, Version=2.0.0.0, Culture=neutral, PublicKeyToken="
RuntimeVersion="v1.0.3705"
1.0.0.0
   Class="namespaceName.className"
   Assembly="name, Version=1.0.0.0, Culture=neutral, PublicKeyToken="
          RuntimeVersion="v1.0.3705"
CLSID\{}\ProgId
@="namespaceName.className"
CLSID\{}\ImplementedCategories\{guid}

sistema autônomo registrar sistema autônomo versões subseqüentes do assembly, regasm.exe adiciona uma subchave dependente de versão para cada nova versão.Todas as versões do mesmo conjunto de módulos (assembly) compartilham as chaves de nível superior (mostradas no layout anterior do registro).O layout parcial seguinte mostra subchaves 1.0.0.0 e 2.0.0.0 do mesmo assembly.

1.0.0.0
   Class="namespaceName.className"
   Assembly="name, Version=1.0.0.0, Culture=neutral, PublicKeyToken="
          RuntimeVersion="v1.0.3705"
2.0.0.0
   Class="namespaceName.className"
   Assembly="name, Version=2.0.0.0, Culture=neutral, PublicKeyToken="
          RuntimeVersion="v1.1.5000"

Remoção da chave dependente de versão

Regasm.exe remove apenas a subchave dependente de versão ao desinstalar uma versão do assembly.Por exemplo, se você desinstalou o className versão 1.0.0.0, regasm.exe remove o 1.0.0.0 subchave mas retém todas as chaves de nível superior e a 2.0.0.0 subchave.

CLSID\{}
   @="namespaceName.className"
CLSID\{}\InprocServer32
   @="mscoree.dll"
ThreadingModel = "Both" 
Class="namespaceName.className"
Assembly="name, Version=2.0.0.0, Culture=neutral, PublicKeyToken="
RuntimeVersion="v1.0.3705"
Version
2.0.0.0
   Class="namespaceName.className"
   Assembly="name, Version=2.0.0.0, Culture=neutral, PublicKeyToken="
          RuntimeVersion="v1.1.5500"
CLSID\{}\ProgId
   @="namespaceName.className"
CLSID\{}\ImplementedCategories\{guid}

Quando você desinstala a última versão de um assembly, regasm.exe remove todas as subchaves dependente de versão.Ela também remove as chaves de nível superior associadas com o conjunto do registro.

Consulte também

Conceitos

Inicialização de tempo de execução de um aplicativo do COM

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

Aplicando atributos dependente de versão

Componentes COM e execução lado a por

Outros recursos

Execução lado a lado para interoperabilidade com.