Regasm.exe (Ferramenta de Registro de Assembly)
A ferramenta de Registro do Assembly lê os metadados dentro de um assembly e adiciona as entradas necessárias ao Registro, que permite que clientes COM para criar classes do .NET Framework de maneira transparente. Depois de uma classe ser registrada, qualquer cliente COM poderá usá-la, mesmo que a classe seja uma classe COM. A classe é registrada apenas uma vez, quando o assembly é instalado. As instâncias de classes dentro do assembly não poderão ser criadas com base em COM até serem efetivamente registradas.
Para executar a ferramenta, use o Prompt de Comando do Desenvolvedor do Visual Studio ou o PowerShell do Desenvolvedor do Visual Studio.
Sintaxe
regasm assemblyFile [options]
Parâmetros
Parâmetro | Descrição |
---|---|
assemblyFile | O assembly a ser registrado usando-se COM. |
Opção | Descrição |
---|---|
/codebase |
Cria uma entrada Codebase no Registro. A entrada Codebase especifica o caminho de arquivo de um assembly não instalado no cache de assembly global. Não especifique essa opção se você instalar subsequentemente o assembly que estiver registrando no cache de assembly global. É altamente recomendável que o argumento assemblyFile especificado com a /codebase opção seja um assembly de nome forte. |
/registered |
Especifica que essa ferramenta só fará referência a bibliotecas de tipos já registradas. |
/asmpath:directory |
Especifica um diretório que contém referências de assembly. Deve ser usado com a /regfile opção. |
/nologo |
Suprime a exibição do banner de inicialização da Microsoft. |
/regfile [: regFile] |
Gera o arquivo .reg especificado para o assembly, que contém as entradas do Registro necessárias. A especificação dessa opção não altera o Registro. Você não pode usar essa opção com as /u opções ou /tlb . |
/silent ou /s |
Suprime a exibição de mensagens de sucesso. |
/tlb [: typeLibFile] |
Gera uma biblioteca de tipos com base no assembly especificado que contém definições dos tipos acessíveis definidos dentro do assembly. |
/unregister ou /u |
Cancela o registro das classes criáveis encontradas em assemblyFile. A omissão dessa opção faz Regasm.exe registrar as classes criáveis no assembly. |
/verbose |
Especifica o modo detalhado; Exibe uma lista de todos os assemblies referenciados para os quais uma biblioteca de tipos precisa ser gerada, quando especificado com a /tlb opção. |
/? ou /help |
Exibe sintaxe de comando e opções para a ferramenta. |
Observação
As opções de linha de comando de Regasm.exe não diferenciam maiúsculas de minúsculas. Você só precisa fornecer o suficiente da opção para identificá-la com exclusividade. Por exemplo, /n
é equivalente a /nologo
e /t: outfile.tlb
é equivalente a /tlb: outfile.tlb
.
Comentários
Você pode usar a /regfile
opção para gerar um arquivo .reg que contenha as entradas do Registro em vez de fazer as alterações diretamente no Registro. É possível atualizar o Registro em um computador importando-se o arquivo .reg com a ferramenta Editor do Registro (Regedit.exe). O arquivo .reg não contém atualizações do Registro que possam ser feitas por funções do Registro definidas pelo usuário. A /regfile
opção só emite entradas do Registro para classes gerenciadas. Esta opção não emite TypeLibID
ou InterfaceID
entradas.
Quando você especifica a /tlb
opção, Regasm.exe gera e registra uma biblioteca de tipos que descreve os tipos encontrados no assembly. Regasm.exe coloca as bibliotecas de tipos geradas no diretório de trabalho atual ou no diretório especificado para o arquivo de saída. A geração de uma biblioteca de tipos para um assembly que faça referência a outros assemblies pode fazer várias bibliotecas de tipos serem geradas de uma só vez. É possível usar a biblioteca de tipos para fornecer informações de tipo para ferramentas de desenvolvimento como o Visual Studio. Não use a /tlb
opção se o assembly que você está registrando foi produzido pelo Type Library Importer (Tlbimp.exe). Não é possível exportar uma biblioteca de tipos com base em um assembly que foi importado de uma biblioteca de tipos. O uso da /tlb
opção tem o mesmo efeito que usar o Type Library Exporter (Tlbexp.exe) e o Regasm.exe, com a exceção de que Tlbexp.exe não registra a biblioteca de tipos que produz. Se você usar a /tlb
opção de registrar uma biblioteca de tipos, poderá usar a /tlb
opção com a opção de cancelar o /unregister
registro da biblioteca de tipos. O uso das duas opções juntas cancelará o registro das entradas da biblioteca de tipos e da interface, que podem limpar o Registro consideravelmente.
Quando você registra um assembly a ser usado pelo COM, Regasm.exe adiciona entradas ao Registro no computador local. Mais especificamente, ele cria chaves do Registro que dependem da versão que permitem a execução de várias versões do mesmo assembly lado a lado em um computador. Na primeira vez em que um assembly é registrado, uma chave de nível superior é criada para o assembly e uma sub-chave exclusiva é criada para a versão específica. Sempre que você registra uma nova versão do assembly, Regasm.exe cria uma subchave para a nova versão.
Por exemplo, leve em consideração um cenário em que você registra o componente gerenciado, myComp.dll, versão 1.0.0.0 a ser usado por COM. Posteriormente, você registra myComp.dll, versão 2.0.0.0. Você determina que todos os aplicativos cliente COM no computador estão usando myComp.dll versão 2.0.0.0 e opta por cancelar o registro de myComponent.dll versão 1.0.0.0. Esse esquema do Registro permite cancelar o registro de myComp.dll versão 1.0.0.0 porque apenas a subchave versão 1.0.0.0 é removida.
Depois de registrar um assembly usando Regasm.exe, você poderá instalá-lo no cache de assembly global de forma que possa ser ativado de qualquer cliente COM. Se o assembly for ativado apenas por um único aplicativo, será possível colocá-lo no diretório desse aplicativo. O uso da /codebase
opção é uma alternativa ao uso do cache de assembly global; no entanto, o local do assembly durante o registro é registrado globalmente e a ativação falhará se o assembly for movido. Se o assembly não for encontrado por meio de investigação, a /codebase
opção carregará o assembly em um contexto de carregamento que tenha considerações adicionais documentadas em Assembly.LoadFrom.
Exemplos
O comando a seguir registra todas as classes públicas contidas em myTest.dll
.
regasm myTest.dll
O comando a seguir gera o arquivo myTest.reg
, que contém todas as entradas do Registro necessárias. Esse comando não atualiza o Registro.
regasm myTest.dll /regfile:myTest.reg
O comando a seguir registra todas as classes públicas contidas em myTest.dll
, além de gerar e registrar a biblioteca de tipos myTest.tlb
, que contém definições de todos os tipos públicos definidos em myTest.dll
.
regasm myTest.dll /tlb:myTest.tlb