Regasm.exe (Ferramenta de Registro de Montagem)
A ferramenta Assembly Registration lê os metadados dentro de um assembly e adiciona as entradas necessárias ao registro, o que permite que os clientes COM criem classes do .NET Framework de forma transparente. Depois que uma classe é registrada, qualquer cliente COM pode usá-la como se a classe fosse uma classe COM. A classe é registrada apenas uma vez, quando o assembly é instalado. Instâncias de classes dentro do assembly não podem ser criadas a partir de COM até que sejam realmente registradas.
Para executar a ferramenta, use o Visual Studio Developer Command Prompt ou o Visual Studio Developer PowerShell.
Sintaxe
regasm assemblyFile [options]
Parâmetros
Parâmetro | Description |
---|---|
assemblyFile | A assembleia a registar na COM. |
Opção | Description |
---|---|
/codebase |
Cria uma entrada Codebase no registro. A entrada Codebase especifica o caminho do arquivo para um assembly que não está instalado no cache de assembly global. Não especifique essa opção se instalar posteriormente o assembly que está registrando no cache de assembly global. É altamente recomendável o argumento assemblyFile que você especificar com a /codebase opção ser um assembly de nome forte. |
/registered |
Especifica que essa ferramenta se referirá apenas a bibliotecas de tipos que já foram registradas. |
/asmpath:directory |
Especifica um diretório contendo 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 de .reg especificado para o assembly, que contém as entradas de registro necessárias. A especificação desta opção não altera o registo. Não é possível 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 a partir do assembly especificado contendo definições dos tipos acessíveis definidos no assembly. |
/unregister ou /u |
Cancela o registro das classes criáveis encontradas em assemblyFile. Omitir essa opção faz com que Regasm.exe registre as classes creatable 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 a sintaxe do comando e as opções da ferramenta. |
Nota
As opções de linha de comando Regasm.exe não diferenciam maiúsculas de minúsculas. Você só precisa fornecer o suficiente da opção para identificá-lo exclusivamente. Por exemplo, /n
é equivalente a /nologo
e /t: outfile.tlb
é equivalente a /tlb: outfile.tlb
.
Observações
Você pode usar a /regfile
opção para gerar um arquivo .reg que contém as entradas do Registro em vez de fazer as alterações diretamente no Registro. Você pode atualizar o registro em um computador importando o arquivo .reg com a ferramenta Editor do Registro (Regedit.exe). O arquivo .reg não contém atualizações de registro que podem ser feitas por funções de registro definidas pelo usuário. A /regfile
opção só emite entradas de registo para classes geridas. Esta opção não emite TypeLibID
nem InterfaceID
entradas.
Quando você especifica a /tlb
opção, Regasm.exe gera e registra uma biblioteca de tipos descrevendo 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. Gerar uma biblioteca de tipos para um assembly que faz referência a outros assemblies pode fazer com que várias bibliotecas de tipos sejam geradas de uma só vez. Você pode 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 Importador de Biblioteca de Tipos (Tlbimp.exe). Não é possível exportar uma biblioteca de tipos de um assembly que foi importado de uma biblioteca de tipos. Usar a /tlb
opção tem o mesmo efeito que usar o Exportador de Biblioteca de Tipos (Tlbexp.exe) e 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 para registrar uma biblioteca de tipos, poderá usá-la com a /tlb
opção para cancelar o /unregister
registro da biblioteca de tipos. Usando as duas opções juntas irá cancelar o registro da biblioteca de tipos e entradas de interface, o que pode limpar o registro consideravelmente.
Quando você registra um assembly para uso por COM, Regasm.exe adiciona entradas ao registro no computador local. Mais especificamente, ele cria chaves de registro dependentes da versão que permitem que várias versões do mesmo assembly sejam executadas lado a lado em um computador. Na primeira vez que um assembly é registrado, uma chave de nível superior é criada para o assembly e uma subchave exclusiva é criada para a versão específica. Cada vez que você registra uma nova versão do assembly, Regasm.exe cria uma subchave para a nova versão.
Por exemplo, considere um cenário em que você registra o componente gerenciado, myComp.dll, versão 1.0.0.0 para uso por COM. Mais tarde, 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 decide cancelar o registro myComponent.dll versão 1.0.0.0. Este esquema de registo permite-lhe cancelar o registo myComp.dll versão 1.0.0.0 porque apenas a subchave da versão 1.0.0.0 é removida.
Depois de registrar um assembly usando Regasm.exe, você pode instalá-lo no cache de assembly global para que ele possa ser ativado a partir de qualquer cliente COM. Se o assembly só vai ser ativado por um único aplicativo, você pode colocá-lo no diretório desse aplicativo. Usar a /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 da sondagem, a /codebase
opção carregará o assembly em um contexto load-from que tenha considerações adicionais documentadas em Assembly.LoadFrom.
Exemplos
O comando a seguir registra todas as classes públicas contidas no myTest.dll
.
regasm myTest.dll
O comando a seguir gera o arquivo myTest.reg
, que contém todas as entradas de registro necessárias. Este comando não atualiza o registo.
regasm myTest.dll /regfile:myTest.reg
O comando a seguir registra todas as classes públicas contidas no myTest.dll
, e gera e registra a biblioteca myTest.tlb
de tipos, que contém definições de todos os tipos públicos definidos em myTest.dll
.
regasm myTest.dll /tlb:myTest.tlb