Condividi tramite


Strumento di registrazione degli assembly (Regasm.exe)

Aggiornamento: novembre 2007

Lo strumento di registrazione degli 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. Quando una classe è stata registrata, qualsiasi client COM può utilizzarla come se si trattasse di una classe COM. La classe viene registrata una sola volta, ossia al momento dell'installazione dell'assembly. Non è possibile creare da COM istanze di classi nell'assembly finché tali classi non sono state effettivamente registrate.

regasm assemblyFile [options]

Parametri

Parametro

Descrizione

Fileassembly

L'assembly da registrare con COM.

Opzione

Descrizione

/codebase

Crea una voce Codebase nel Registro di sistema. Tale voce specifica il percorso file di un assembly non installato nella Global Assembly Cache. È consigliabile non specificare questa opzione se successivamente si intende installare nella Global Assembly Cache l'assembly che si sta registrando. L'argomento Fileassembly specificato con l'opzione /codebase deve essere un assembly con nome sicuro.

/registered

Specifica che questo strumento includerà riferimenti solo alle librerie dei tipi che sono già state registrate.

/asmpath:directory

Specifica una directory contenente riferimenti agli assembly. Deve essere utilizzata insieme all'opzione /regfile.

/nologo

Evita la visualizzazione del messaggio di avvio Microsoft.

/regfile [:Filereg]

Genera il file REG specificato per l'assembly, che contiene le voci del Registro di sistema necessarie. Specificando questa opzione il Registro di sistema non viene modificato. Non è possibile utilizzare questa opzione insieme alle opzioni /u o /tlb.

/silent o /s

Evita la visualizzazione dei messaggi di operazione riuscita.

/tlb [:Filelibreriatipi]

Genera, dall'assembly specificato, una libreria dei tipi contenente le definizioni dei tipi accessibili definiti all'interno dell'assembly stesso.

/unregister o /u

Annulla la registrazione delle classi che possono essere create presenti in Fileassembly. Se questa opzione viene omessa, le classi nell'assembly verranno registrate.

/verbose

Specifica la modalità dettagliata. Se specificata 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.

/? o /help

Visualizza la sintassi e le opzioni dei comandi dello strumento.

Nota

Le opzioni della riga di comando di Regasm.exe non sono soggette alla distinzione tra maiuscole e minuscole. Per identificarle in modo univoco, è sufficiente digitare solo una parte dell'opzione. Ad esempio, /n equivale a /nologo e /t:filedioutput.tlb equivale a /tlb:filedioutput.tlb.

Note

È possibile utilizzare l'opzione /regfile per generare un file REG contenente le voci del Registro di sistema, anziché apportare le modifiche direttamente in tale Registro. Per aggiornare il Registro di sistema su un computer è necessario importare il file REG con lo strumento Editor del Registro di sistema (Regedit.exe). Si noti che il file REG non contiene alcun aggiornamento del Registro di sistema effettuato mediante funzioni del Registro di sistema definite dall'utente. Si noti inoltre che l'opzione /regfile crea solo voci di registro per le classi gestite. Non vengono create voci per TypeLibID o InterfaceID.

Quando si specifica l'opzione /tlb, viene generata e registrata una libreria dei tipi in cui sono descritti i tipi presenti nell'assembly. Le librerie dei tipi generate vengono inserite nella directory di lavoro corrente o nella directory specificata per il file di output. 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. La libreria dei tipi può essere utilizzata per fornire informazioni sui tipi a strumenti di sviluppo come Visual Studio 2005. L'opzione /tlb non deve essere utilizzata se l'assembly che si sta registrando è stato prodotto dall'utilità di importazione della libreria dei tipi, Tlbimp.exe. Non è possibile esportare una libreria dei tipi da un assembly importato da una libreria dei tipi. L'utilizzo dell'opzione /tlb equivale all'utilizzo dell'utilità di esportazione della libreria dei tipi (Tlbexp.exe) e Regasm.exe, con l'eccezione che Tlbexp.exe non registra la libreria dei tipi che produce. Se si utilizza /tlb per registrare una libreria dei tipi, sarà possibile utilizzare /tlb con l'opzione /unregister per annullare la registrazione. 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.

Quando si registra un assembly per consentirne l'utilizzo da parte di COM, sul computer locale vengono aggiunte delle voci al Registro di sistema . In particolare, vengono create chiavi del Registro di sistema dipendenti dalla versione che consentono l'esecuzione affiancata su un computer di più versioni dello stesso assembly. Alla prima registrazione di un assembly, viene creata una chiave di primo livello per l'assembly e una sottochiave univoca per la versione specifica. Ogni volta che si registra una nuova versione dell'assembly, viene creata una sottochiave per la nuova versione.

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. Successivamente si registra myComp.dll, versione 2.0.0.0. Viene verificato che tutte le applicazioni client COM presenti nel computer utilizzano myComp.dll versione 2.0.0.0 e si decide di annullare la registrazione di myComponent.dll versione 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.

Dopo aver registrato un assembly mediante Regasm.exe, è possibile installarlo nella Global Assembly Cache in modo che possa essere attivato da qualsiasi client COM. Se l'assembly dovrà essere attivato da un'unica applicazione, sarà possibile inserirlo nella directory di tale applicazione.

Esempi

Il comando che segue registra tutte le classi pubbliche contenute in myTest.dll.

regasm myTest.dll

Il comando che segue genera il file myTest.reg contenente tutte le voci di Registro di sistema necessarie. Questo comando non aggiorna il Registro di sistema.

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.

regasm myTest.dll /tlb:myTest.tlb

Vedere anche

Concetti

Registrazione di assembly presso COM

Riferimenti

Strumenti di .NET Framework

Utilità di esportazione della libreria dei tipi (Tlbexp.exe)

Utilità di importazione della libreria dei tipi (Tlbimp.exe)

Prompt dei comandi di SDK