Observação
O acesso a essa página exige autorização. Você pode tentar entrar ou alterar diretórios.
O acesso a essa página exige autorização. Você pode tentar alterar os diretórios.
Você pode executar uma ferramenta de linha de comando chamada Ferramenta de Registro de Assembly (Regasm.exe) para registrar ou cancelar o registro de um assembly para uso com COM. Regasm.exe adiciona informações sobre a classe ao registro do sistema para que os clientes COM possam usar a classe .NET Framework de forma transparente. A RegistrationServices classe fornece a funcionalidade equivalente.
Um componente gerenciado deve ser registrado no Registro do Windows antes de ser ativado de um cliente COM. A tabela a seguir mostra as chaves que Regasm.exe normalmente adicionam ao Registro do Windows. (000000 indica o valor GUID real.)
Identificador Globalmente Único (GUID) | Descrição | Chave do Registro |
---|---|---|
CLSID | Identificador de classe | HKEY_CLASSES_ROOT\CLSID\{000…000} |
IID | Identificador de interface | HKEY_CLASSES_ROOT\Interface\{000…000} |
LIBID | Identificador de biblioteca | HKEY_CLASSES_ROOT\TypeLib\{000…000} |
ProgID | Identificador programático | HKEY_CLASSES_ROOT\000…000 |
Na chave HKCR\CLSID\{0000…0000}, o valor padrão é definido como o ProgID da classe, e dois novos valores nomeados, Class e Assembly, são adicionados. O runtime lê o valor de Assembly do registro e a passa para o resolvedor de assembly de runtime. O resolvedor de assembly tenta localizar o assembly, com base em informações de assembly como o número de versão e o nome. Para ser localizado por um resolvedor de assembly, o assembly deve estar em um dos seguintes locais:
O cache de assembly global (deve ser um assembly de nome forte).
No diretório do aplicativo. Assemblies carregados no caminho do aplicativo só são acessíveis por meio desse aplicativo.
Ao longo de um caminho de arquivo especificado com a opção /codebase para Regasm.exe.
Regasm.exe também cria a chave InProcServer32 sob a chave HKCR\CLSID\{0000…0000}. O valor padrão da chave é definido como o nome da DLL que inicializa o common language runtime (Mscoree.dll).
Examinando Entradas do Registro
A interoperabilidade COM oferece uma implementação padrão de fábrica de classes para criar uma instância de qualquer classe do .NET Framework. Os clientes podem chamar DllGetClassObject na DLL gerenciada para obter uma fábrica de classes e criar objetos, assim como fariam com qualquer outro componente COM.
Para a subchave InprocServer32
, uma referência a Mscoree.dll é exibida no lugar de uma biblioteca de tipos COM tradicional para indicar que o Common Language Runtime cria o objeto gerenciado.