Regasm.exe (Ferramenta de Registro de Assembly)Regasm.exe (Assembly Registration Tool)

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.The Assembly Registration tool reads the metadata within an assembly and adds the necessary entries to the registry, which allows COM clients to create .NET Framework classes transparently. Depois de uma classe ser registrada, qualquer cliente COM poderá usá-la, mesmo que a classe seja uma classe COM.Once a class is registered, any COM client can use it as though the class were a COM class. A classe é registrada apenas uma vez, quando o assembly é instalado.The class is registered only once, when the assembly is installed. As instâncias de classes dentro do assembly não poderão ser criadas com base em COM até serem efetivamente registradas.Instances of classes within the assembly cannot be created from COM until they are actually registered.

Para executar a ferramenta, use o Prompt de Comando do Desenvolvedor para Visual Studio.To run the tool, use the Developer Command Prompt for Visual Studio. Para obter mais informações, consulte Prompts de Comando.For more information, see Command Prompts.

No prompt de comando, digite o seguinte:At the command prompt, type the following:

SintaxeSyntax

regasm assemblyFile [options]

ParâmetrosParameters

ParâmetroParameter DescriçãoDescription
assemblyFileassemblyFile O assembly a ser registrado usando-se COM.The assembly to be registered with COM.
OpçãoOption DescriçãoDescription
/codebase/codebase Cria uma entrada Codebase no Registro.Creates a Codebase entry in the registry. A entrada Codebase especifica o caminho de arquivo de um assembly não instalado no cache de assembly global.The Codebase entry specifies the file path for an assembly that is not installed in the global assembly cache. Você não deverá especificar essa opção se você instalar subsequentemente o assembly que está registrando no cache de assembly global.You should not specify this option if you will subsequently install the assembly that you are registering into the global assembly cache. O argumento assemblyFile especificado com a opção /codebase deve ser um assembly de nome forte.The assemblyFile argument that you specify with the /codebase option must be a strong-named assembly.
/registered/registered Especifica que essa ferramenta só fará referência a bibliotecas de tipos já registradas.Specifies that this tool will only refer to type libraries that have already been registered.
/asmpath:directory/asmpath:directory Especifica um diretório que contém referências de assembly.Specifies a directory containing assembly references. Deve ser usado com a opção /regfile.Must be used with the /regfile option.
/nologo/nologo Suprime a exibição do banner de inicialização da Microsoft.Suppresses the Microsoft startup banner display.
/regfile [ : regFile]/regfile [: regFile] Gera o arquivo .reg especificado para o assembly, que contém as entradas do Registro necessárias.Generates the specified .reg file for the assembly, which contains the needed registry entries. A especificação dessa opção não altera o Registro.Specifying this option does not change the registry. Não é possível usar essa opção com as opções /u ou /tlb.You cannot use this option with the /u or /tlb options.
/silent ou /s/silent or /s Suprime a exibição de mensagens de sucesso.Suppresses the display of success messages.
/tlb [ : typeLibFile]/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.Generates a type library from the specified assembly containing definitions of the accessible types defined within the assembly.
/unregister ou /u/unregister or /u Cancela o registro das classes criáveis encontradas em assemblyFile.Unregisters the creatable classes found in assemblyFile. A omissão dessa opção faz Regasm.exe registrar as classes criáveis no assembly.Omitting this option causes Regasm.exe to register the creatable classes in the assembly.
/verbose/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.Specifies verbose mode; displays a list of any referenced assemblies for which a type library needs to be generated, when specified with the /tlb option.
/?/? ou /helpor /help Exibe sintaxe de comando e opções para a ferramenta.Displays command syntax and options for the tool.

Observação

As opções de linha de comando de Regasm.exe não diferenciam maiúsculas de minúsculas.The Regasm.exe command-line options are case insensitive. Você só precisa fornecer o suficiente da opção para identificá-la com exclusividade.You only need to provide enough of the option to uniquely identify it. Por exemplo, /n equivale a /nologo e /t: outfile.tlb equivale a /tlb: outfile.tlb.For example, /n is equivalent to /nologo and /t: outfile.tlb is equivalent to /tlb: outfile.tlb.

ComentáriosRemarks

É possível usar a opção /regfile para gerar um arquivo .reg que contém as entradas do Registro em vez de fazer as alterações diretamente no Registro.You can use the /regfile option to generate a .reg file that contains the registry entries instead of making the changes directly to the registry. É possível atualizar o Registro em um computador importando-se o arquivo .reg com a ferramenta Editor do Registro (Regedit.exe).You can update the registry on a computer by importing the .reg file with the Registry Editor tool (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.Note that the .reg file does not contain any registry updates that can be made by user-defined register functions. Observe que a opção /regfile emite apenas entradas do Registro para classes gerenciadas.Note that the /regfile option only emits registry entries for managed classes. Essa opção não emite entradas para TypeLibIDs ou InterfaceIDS.This option does not emit entries for TypeLibIDs or InterfaceIDs.

Quando você especifica a opção /tlb, Regasm.exe gera e registra uma biblioteca de tipos que descreve os tipos encontrados no assembly.When you specify the /tlb option, Regasm.exe generates and registers a type library describing the types found in the 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.Regasm.exe places the generated type libraries in the current working directory or the directory specified for the output file. 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.Generating a type library for an assembly that references other assemblies may cause several type libraries to be generated at once. É possível usar a biblioteca de tipos para fornecer informações de tipo para ferramentas de desenvolvimento como o Visual Studio.You can use the type library to provide type information to development tools like Visual Studio. Você não deverá usar a opção /tlb se o assembly que você está sendo registrando tiver sido produzido pelo Importador da Biblioteca de Tipos (Tlbimp.exe).You should not use the /tlb option if the assembly you are registering was produced by the 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.You cannot export a type library from an assembly that was imported from a type library. O uso da opção /tlb tem o mesmo efeito do uso do Exportador da Biblioteca de Tipos (Tlbexp.exe) e de Regasm.exe, com a exceção de Tlbexp.exe não registra a biblioteca de tipos produzida.Using the /tlb option has the same effect as using the Type Library Exporter (Tlbexp.exe) and Regasm.exe, with the exception that Tlbexp.exe does not register the type library it produces. Se 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.If you use the /tlb option to registered a type library, you can use /tlb option with the /unregister option to unregistered the type library. 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.Using the two options together will unregister the type library and interface entries, which can clean the registry considerably.

Quando você registra um assembly a ser usado pelo COM, Regasm.exe adiciona entradas ao Registro no computador local.When you register an assembly for use by COM, Regasm.exe adds entries to the registry on the local computer. 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.More specifically, it creates version-dependent registry keys that allow multiple versions of the same assembly to run side by side on a computer. Na primeira vez em 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.The first time an assembly is registered, one top-level key is created for the assembly and a unique subkey is created for the specific version. Sempre que você registra uma nova versão do assembly, Regasm.exe cria uma subchave para a nova versão.Each time you register a new version of the assembly, Regasm.exe creates a subkey for the new version.

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.For example, consider a scenario where you register the managed component, myComp.dll, version 1.0.0.0 for use by COM. Posteriormente, você registra myComp.dll, versão 2.0.0.0.Later, you register myComp.dll, version 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.You determine that all COM client applications on the computer are using myComp.dll version 2.0.0.0 and you decide to unregister myComponent.dll version 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.This registry scheme allows you to unregister myComp.dll version 1.0.0.0 because only the version 1.0.0.0 subkey is removed.

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.After registering an assembly using Regasm.exe, you can install it in the global assembly cache so that it can be activated from any COM client. Se o assembly for ativado apenas por um único aplicativo, será possível colocá-lo no diretório desse aplicativo.If the assembly is only going to be activated by a single application, you can place it in that application's directory.

ExemplosExamples

O comando a seguir registra todas as classes públicas contidas em myTest.dll.The following command registers all public classes contained in myTest.dll.

regasm myTest.dll

O comando a seguir gera o arquivo myTest.reg, que contém todas as entradas do Registro necessárias.The following command generates the file myTest.reg, which contains all the necessary registry entries. Esse comando não atualiza o Registro.This command does not update the registry.

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.The following command registers all public classes contained in myTest.dll, and generates and registers the type library myTest.tlb, which contains definitions of all the public types defined in myTest.dll.

regasm myTest.dll /tlb:myTest.tlb

Consulte tambémSee also