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.
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"
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.
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