Regasm.exe (strumento di registrazione di assembly)Regasm.exe (Assembly Registration Tool)

Lo strumento di registrazione di assembly legge i metadati all'interno di un assembly e aggiunge al Registro di sistema le voci necessarie per consentire ai client COM di creare classi di .NET Framework in modo trasparente.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. Quando una classe è stata registrata, qualsiasi client COM può utilizzarla come se si trattasse di una classe COM.Once a class is registered, any COM client can use it as though the class were a COM class. La classe viene registrata una sola volta, al momento dell'installazione dell'assembly.The class is registered only once, when the assembly is installed. Non è possibile creare da COM istanze di classi nell'assembly finché tali classi non sono state effettivamente registrate.Instances of classes within the assembly cannot be created from COM until they are actually registered.

Per eseguire lo strumento, usare il Prompt dei comandi per gli sviluppatori per Visual Studio.To run the tool, use the Developer Command Prompt for Visual Studio. Per altre informazioni, vedere Prompt dei comandi.For more information, see Command Prompts.

Al prompt dei comandi digitare quanto segue:At the command prompt, type the following:

SintassiSyntax

regasm assemblyFile [options]

ParametriParameters

ParametroParameter DescrizioneDescription
fileAssemblyassemblyFile Assembly da registrare con COM.The assembly to be registered with COM.
OpzioneOption DescrizioneDescription
/codebase/codebase Crea una voce Codebase nel Registro di sistemaCreates a Codebase entry in the registry. che specifica il percorso del file di un assembly non installato nella Global Assembly Cache.The Codebase entry specifies the file path for an assembly that is not installed in the global assembly cache. È consigliabile non specificare questa opzione se successivamente si intende installare nella Global Assembly Cache l'assembly che si sta registrando.You should not specify this option if you will subsequently install the assembly that you are registering into the global assembly cache. L'argomento fileAssembly specificato con l'opzione /codebase deve essere un assembly con nome sicuro.The assemblyFile argument that you specify with the /codebase option must be a strong-named assembly.
/registered/registered Specifica che questo strumento includerà riferimenti solo alle librerie dei tipi che sono già state registrate.Specifies that this tool will only refer to type libraries that have already been registered.
/asmpath:directory/asmpath:directory Specifica una directory contenente riferimenti agli assembly.Specifies a directory containing assembly references. Deve essere usato insieme all'opzione /regfile.Must be used with the /regfile option.
/nologo/nologo Evita la visualizzazione del messaggio di avvio Microsoft.Suppresses the Microsoft startup banner display.
/regfile [ : fileRegistrosistema]/regfile [: regFile] Genera il file .reg specificato per l'assembly, che contiene le voci del Registro di sistema necessarie.Generates the specified .reg file for the assembly, which contains the needed registry entries. Se si specifica questa opzione, il Registro di sistema non viene modificato.Specifying this option does not change the registry. Non è possibile usare questa opzione insieme alle opzioni /u o /tlb.You cannot use this option with the /u or /tlb options.
/silent o /s/silent or /s Evita la visualizzazione dei messaggi di operazione riuscita.Suppresses the display of success messages.
/tlb [ : fileLibreriaTipi]/tlb [: typeLibFile] Genera, dall'assembly specificato, una libreria dei tipi contenente le definizioni dei tipi accessibili definiti all'interno dell'assembly stesso.Generates a type library from the specified assembly containing definitions of the accessible types defined within the assembly.
/unregister o /u/unregister or /u Annulla la registrazione delle classi che possono essere create e trovate in fileAssembly.Unregisters the creatable classes found in assemblyFile. Se questa opzione viene omessa, le classi nell'assembly verranno registrate.Omitting this option causes Regasm.exe to register the creatable classes in the assembly.
/verbose/verbose Specifica la modalità dettagliata. Se viene definita con l'opzione /tlb, visualizza l'elenco di tutti gli assembly a cui si fa riferimento e per i quali è necessario generare una libreria dei tipi.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.
/?/? o /helpor /help Visualizza la sintassi e le opzioni di comando dello strumento.Displays command syntax and options for the tool.

Nota

Le opzioni della riga di comando di Regasm.exe non sono soggette alla distinzione tra maiuscole e minuscole.The Regasm.exe command-line options are case insensitive. Per identificarle in modo univoco, è sufficiente digitare solo una parte dell'opzione.You only need to provide enough of the option to uniquely identify it. Ad esempio, /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.

NoteRemarks

È possibile usare l'opzione /regfile per generare un file REG contenente le voci del Registro di sistema, anziché apportare le modifiche direttamente in tale 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. Per aggiornare il Registro di sistema su un computer è necessario importare il file .reg con lo strumento Editor del Registro di sistema (Regedit.exe).You can update the registry on a computer by importing the .reg file with the Registry Editor tool (Regedit.exe). Si noti che il file .reg non contiene alcun aggiornamento del Registro di sistema che può essere effettuato mediante funzioni del Registro di sistema definite dall'utente.Note that the .reg file does not contain any registry updates that can be made by user-defined register functions. Si noti che l'opzione /regfile crea solo voci del Registro di sistema per le classi gestite.Note that the /regfile option only emits registry entries for managed classes. Non vengono create voci per TypeLibID o InterfaceID.This option does not emit entries for TypeLibIDs or InterfaceIDs.

Quando si specifica l'opzione /tlb, Regasm.exe genera e registra una libreria dei tipi che descrive i tipi trovati nell'assembly.When you specify the /tlb option, Regasm.exe generates and registers a type library describing the types found in the assembly. Le librerie dei tipi generate vengono inserite nella directory di lavoro corrente o nella directory specificata per il file di output.Regasm.exe places the generated type libraries in the current working directory or the directory specified for the output file. Se viene generata una libreria dei tipi per un assembly che fa riferimento ad altri assembly, è possibile che vengano generate più librerie dei tipi contemporaneamente.Generating a type library for an assembly that references other assemblies may cause several type libraries to be generated at once. La libreria dei tipi può essere usata per fornire informazioni sui tipi a strumenti di sviluppo come Visual Studio.You can use the type library to provide type information to development tools like Visual Studio. L'opzione /tlb non deve essere usata se l'assembly che si sta registrando è stato prodotto dall'utilità di importazione della libreria dei tipi, Tlbimp.exe.You should not use the /tlb option if the assembly you are registering was produced by the Type Library Importer (Tlbimp.exe). Non è possibile esportare una libreria dei tipi da un assembly importato da una libreria dei tipi.You cannot export a type library from an assembly that was imported from a type library. L'uso dell'opzione /tlb equivale all'uso dell'utilità di esportazione della libreria dei tipi (Tlbexp.exe) e di Regasm.exe, con l'eccezione che Tlbexp.exe non registra la libreria dei tipi che produce.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 si usa /tlb per registrare una libreria dei tipi, è possibile usare /tlb con l'opzione /unregister per annullare la registrazione.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. L'utilizzo congiunto di queste due opzioni determina l'annullamento della registrazione delle voci di interfaccia e di libreria dei tipi, con conseguente pulitura del Registro di sistema.Using the two options together will unregister the type library and interface entries, which can clean the registry considerably.

Quando si registra un assembly per consentirne l'utilizzo da parte di COM, sul computer locale vengono aggiunte delle voci al Registro di sistema.When you register an assembly for use by COM, Regasm.exe adds entries to the registry on the local computer. In particolare, vengono create chiavi del Registro di sistema dipendenti dalla versione che consentono l'esecuzione side-by-side di più versioni dello stesso assembly su un computer.More specifically, it creates version-dependent registry keys that allow multiple versions of the same assembly to run side by side on a computer. Alla prima registrazione di un assembly, viene creata una chiave di primo livello per l'assembly e una sottochiave univoca per la versione specifica.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. Ogni volta che si registra una nuova versione dell'assembly, viene creata una sottochiave per la nuova versione.Each time you register a new version of the assembly, Regasm.exe creates a subkey for the new version.

Si consideri, ad esempio, uno scenario in cui si registra il componente gestito myComp.dll, versione 1.0.0.0 per consentirne l'utilizzo da parte di COM.For example, consider a scenario where you register the managed component, myComp.dll, version 1.0.0.0 for use by COM. Successivamente si registra myComp.dll, versione 2.0.0.0.Later, you register myComp.dll, version 2.0.0.0. Viene verificato che tutte le applicazioni client COM presenti nel computer usano myComp.dll versione 2.0.0.0 e si decide di annullare la registrazione di myComponent.dll versione 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. Questo schema del Registro di sistema consente di annullare la registrazione di myComp.dll versione 1.0.0.0 in quanto viene rimossa solo la sottochiave della versione 1.0.0.0.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.

Dopo aver registrato un assembly tramite Regasm.exe, è possibile installarlo nella Global Assembly Cache in modo che possa essere attivato da qualsiasi client 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 l'assembly dovrà essere attivato da un'unica applicazione, è possibile inserirlo nella directory di tale applicazione.If the assembly is only going to be activated by a single application, you can place it in that application's directory.

EsempiExamples

Il comando che segue registra tutte le classi pubbliche contenute in myTest.dll.The following command registers all public classes contained in myTest.dll.

regasm myTest.dll

Il comando che segue genera il file myTest.reg contenente tutte le voci di Registro di sistema necessarie.The following command generates the file myTest.reg, which contains all the necessary registry entries. Questo comando non aggiorna il Registro di sistema.This command does not update the registry.

regasm myTest.dll /regfile:myTest.reg

Il comando che segue registra tutte le classi pubbliche contenute in myTest.dll e genera e registra la libreria dei tipi myTest.tlb che contiene le definizioni di tutti i tipi pubblici definiti in 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

Vedere ancheSee also