Partilhar via


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.

Na linha de comandos, escreva o seguinte:

Sintaxe

regasm assemblyFile [options]

Parâmetros

Parâmetro Description
assemblyFile A assembleia a registar na COM.
Opção Description
/base de código 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 que o argumento assemblyFile especificado com a opção /codebase seja um assembly de nome forte.
/registado Especifica que essa ferramenta se referirá apenas a bibliotecas de tipos que já foram registradas.
/asmpath:diretório Especifica um diretório contendo referências de assembly. Deve ser usado com a opção /regfile .
/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 opções /u 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.
/cancelar o registro 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 opção /tlb .
/? 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 opção /regfile para gerar um arquivo de .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 opção /regfile só emite entradas de registo para classes geridas. Esta opção não emite entradas para TypeLibIDs ou InterfaceIDs.

Quando você especifica a opção /tlb , 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 opção /tlb 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 opção /tlb 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 opção /tlb para registrar uma biblioteca de tipos, poderá usar a opção /tlb com a opção /unregister para cancelar o 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 opção /codebase é 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 sondagem, a opção /codebase 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.tlbde tipos, que contém definições de todos os tipos públicos definidos em myTest.dll.

regasm myTest.dll /tlb:myTest.tlb

Consulte também