Tlbexp.exe (utilità di esportazione della libreria dei tipi)Tlbexp.exe (Type Library Exporter)

L'utilità di esportazione della libreria dei tipi genera una libreria di tipi che descrive i tipi definiti in un assembly di Common Language Runtime.The Type Library Exporter generates a type library that describes the types defined in a common language runtime assembly.

Viene installato automaticamente con Visual Studio.This tool is automatically installed with Visual Studio. Per eseguire lo strumento, usare il prompt dei comandi per sviluppatori o il prompt dei comandi di Visual Studio in Windows 7.To run the tool, use the Developer Command Prompt (or the Visual Studio Command Prompt in Windows 7). 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

tlbexp assemblyName [options]  

ParametriParameters

ArgomentoArgument DescrizioneDescription
assemblyNameassemblyName Assembly per il quale esportare una libreria dei tipi.The assembly for which to export a type library.
OpzioneOption DescrizioneDescription
/asmpath: directory/asmpath: directory Specifica il percorso in cui eseguire la ricerca degli assembly.Specifies the location to search for assemblies. Se si utilizza questa opzione, è necessario specificare in modo esplicito i percorsi in cui eseguire la ricerca degli assembly a cui si fa riferimento, inclusa la directory corrente.If you use this option, you must explicitly specify the locations to search for referenced assemblies, including the current directory.

Quando si usa l'opzione asmpath, l'utilità di esportazione della libreria dei tipi non cerca un assembly nella Global Assembly Cache (GAC).When you use the asmpath option, the Type Library Exporter will not look for an assembly in the global assembly cache (GAC).
/help/help Visualizza la sintassi e le opzioni di comando dello strumento.Displays command syntax and options for the tool.
/names: filename/names: filename Specifica la combinazione di maiuscole/minuscole per i nomi di una libreria dei tipi.Specifies the capitalization of names in a type library. L'argomento filename è un file di testo.The filename argument is a text file. Ogni riga del file specifica la combinazione di maiuscole/minuscole di un nome presente nella libreria dei tipi.Each line in the file specifies the capitalization of one name in the type library.
/nologo/nologo Evita la visualizzazione del messaggio di avvio Microsoft.Suppresses the Microsoft startup banner display.
/oldnames/oldnames Forza Tlbexp.exe a esportare i nomi di tipi decorati se si verifica un conflitto tra nomi di tipi.Forces Tlbexp.exe to export decorated type names if there is a type name conflict. Questo era il comportamento predefinito nelle versioni di .NET Framework precedenti alla 2.0.Note that this was the default behavior in versions prior to the .NET Framework version 2.0.
/out: file/out: file Specifica il nome del file della libreria dei tipi da generare.Specifies the name of the type library file to generate. Se si omette questa opzione, verrà generata una libreria dei tipi che avrà lo stesso nome dell'assembly (il nome effettivo dell'assembly, che non deve necessariamente coincidere con quello del file contenente l'assembly) e l'estensione .tlb.If you omit this option, Tlbexp.exe generates a type library with the same name as the assembly (the actual assembly name, which might not necessarily be the same as the file containing the assembly) and a .tlb extension.
/silence: warningnumber/silence: warningnumber Non visualizza l'avviso specificato.Suppresses the display of the specified warning. Questa opzione non può essere usata con /silent.This option cannot be used with /silent.
/silent/silent Evita la visualizzazione dei messaggi di operazione riuscita.Suppresses the display of success messages. Questa opzione non può essere usata con /silence.This option cannot be used with /silence.
/tlbreference: typelibraryname/tlbreference: typelibraryname Forza Tlbexp.exe a risolvere in modo esplicito i riferimenti alla libreria dei tipi senza consultare il Registro di sistema.Forces Tlbexp.exe to explicitly resolve type library references without consulting the registry. Se ad esempio l'assembly B fa riferimento all'assembly A, è possibile utilizzare questa opzione per fornire un riferimento esplicito alla libreria dei tipi anziché basarsi sulla libreria dei tipi specificata nel Registro di sistema.For example, if assembly B references assembly A, you can use this option to provide an explicit type library reference, rather than relying on the type library specified in the registry. Viene eseguito un controllo della versione per assicurare che la versione della libreria dei tipi corrisponda alla versione dell'assembly. In caso contrario, viene generato un errore.Tlbexp.exe performs a version check to ensure that the type library version matches the assembly version; otherwise, it generates an error.

L'opzione tlbreference consulta comunque il Registro di sistema se l'attributo ComImportAttribute viene applicato a un'interfaccia che viene successivamente implementata da un altro tipo.Note that the tlbreference option still consults the registry in cases where the ComImportAttribute attribute is applied to an interface that is then implemented by another type.
/tlbrefpath: path/tlbrefpath: path Percorso completo di una libreria dei tipi a cui è stato fatto riferimento.Fully qualified path to a referenced type library.
/win32/win32 Nella compilazione a 64 bit questa opzione specifica che Tlbexp.exe genera una libreria dei tipi a 32 bit.When compiling on a 64-bit computer, this option specifies that Tlbexp.exe generates a 32-bit type library.
/win64/win64 Nella compilazione a 32 bit questa opzione specifica che Tlbexp.exe genera una libreria dei tipi a 64 bit.When compiling on a 32-bit computer, this option specifies that Tlbexp.exe generates a 64-bit type library.
/verbose/verbose Specifica la modalità dettagliata. Visualizza l'elenco di tutti gli assembly a cui si fa riferimento 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.
/?/? 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 Tlbexp.exe non sono soggette alla distinzione tra maiuscole e minuscole e per specificarle non è necessario seguire un ordine particolare.The command-line options for Tlbexp.exe are case-insensitive and can be supplied in any order. Per identificarle in modo univoco, è sufficiente digitare solo una parte dell'opzione.You only need to specify enough of the option to uniquely identify it. Ad esempio, /n equivale a /nologo e /o: outfile.tlb equivale a /out: outfile.tlb.For example, /n is equivalent to /nologo, and /o: outfile.tlb is equivalent to /out: outfile.tlb.

NoteRemarks

Tlbexp.exe consente di generare una libreria dei tipi che contiene le definizioni dei tipi definiti nell'assembly.Tlbexp.exe generates a type library that contains definitions of the types defined in the assembly. Le applicazioni come Visual Basic 6.0 possono utilizzare la libreria dei tipi generata per operare un'associazione ai tipi .NET definiti nell'assembly.Applications such as Visual Basic 6.0 can use the generated type library to bind to the .NET types defined in the assembly.

Importante

Non è possibile utilizzare Tlbexp.exe per esportare file di metadati Windows (.winmd).You cannot use Tlbexp.exe to export Windows metadata (.winmd) files. L'esportazione di assembly Windows Runtime non è supportata.Exporting Windows Runtime assemblies is not supported.

L'intero assembly viene convertito in un'unica operazione.The entire assembly is converted at once. Non è possibile utilizzare Tlbexp.exe per generare informazioni sui tipi per un sottoinsieme dei tipi definiti in un assembly.You cannot use Tlbexp.exe to generate type information for a subset of the types defined in an assembly.

Questo strumento non può essere usato per produrre una libreria dei tipi da un assembly importato mediante l'utilità di importazione della libreria dei tipi (Tlbimp.exe).You cannot use Tlbexp.exe to produce a type library from an assembly that was imported using the Type Library Importer (Tlbimp.exe). Al contrario, è necessario riferirsi alla libreria dei tipi originale importata con Tlbimp.exe.Instead, you should refer to the original type library that was imported with Tlbimp.exe. È possibile esportare una libreria dei tipi da un assembly che fa riferimento agli assembly importati utilizzando Tlbimp.exe.You can export a type library from an assembly that references assemblies that were imported using Tlbimp.exe. Vedere la sezione degli esempi di seguito.See the examples section below.

Tlbexp.exe colloca le librerie dei tipi generate nella directory di lavoro corrente o nella directory specificata per il file di output.Tlbexp.exe places generated type libraries in the current working directory or the directory specified for the output file. Da un unico assembly possono essere generate più librerie dei tipi.A single assembly might cause several type libraries to be generated.

Tlbexp.exe genera una libreria dei tipi ma non la registra.Tlbexp.exe generates a type library but does not register it. Questo comportamento è opposto a quello dello strumento di registrazione degli assembly (Regasm.exe), che effettua sia la generazione che la registrazione delle librerie dei tipi.This is in contrast to the Assembly Registration tool (Regasm.exe), which both generates and registers a type library. Per generare e registrare una libreria dei tipi con COM, utilizzare Regasm.exe.To generate and register a type library with COM, use Regasm.exe.

Se non si specificano né l'opzione /win32, né l'opzione /win64, verrà generata una libreria dei tipi a 32 o 64 bit corrispondente al tipo di computer, a 32 o a 64 bit, utilizzato per l'esecuzione della compilazione.If you do not specify either the /win32 or /win64 option, Tlbexp.exe generates a 32-bit or 64-bit type library that corresponds to the type of computer on which you are performing the compilation (32-bit or 64-bit computer). Ai fini della compilazione incrociata, è possibile utilizzare l'opzione /win64 su un computer a 32 bit per generare una libreria dei tipi a 64 bit e l'opzione /win32 su un computer a 64 bit per generare una libreria dei tipi a 32 bit.For cross-compilation purposes, you can use the /win64 option on a 32-bit computer to generate a 64-bit type library and you can use the /win32 option on a 64-bit computer to generate a 32-bit type library. Nelle librerie dei tipi a 32 bit il valore di SYSKIND viene impostato su SYS_WIN32.In 32-bit type libraries, the SYSKIND value is set to SYS_WIN32. Nelle librerie dei tipi a 64 bit il valore di SYSKIND viene impostato su SYS_WIN64.In 64-bit type libraries, the SYSKIND value is set to SYS_WIN64. Tutti i tipi di dati (ad esempio i dati di tipo puntatore quali IntPtr e UIntPtr) vengono convertiti di conseguenza.All data type transformations (for example, pointer-sized data types such as IntPtr and UIntPtr) are converted appropriately.

Se si utilizza l'attributo MarshalAsAttribute per specificare un valore SafeArraySubType di VT_UNKOWN o VT_DISPATCH, gli eventuali utilizzi successivi del campo SafeArrayUserDefinedSubType verranno ignorati.If you use the MarshalAsAttribute attribute to specify a SafeArraySubType value of VT_UNKOWN or VT_DISPATCH, Tlbexp.exe ignores any subsequent use of the SafeArrayUserDefinedSubType field. Date, ad esempio, le seguenti firme:For example, given the following signatures:

[return:MarshalAs(UnmanagedType.SafeArray, SafeArraySubType=VarEnum.VT_UNKNOWN, SafeArrayUserDefinedSubType=typeof(ConsoleKeyInfo))] public Array StructUnkSafe(){return null;}  
[return:MarshalAs(UnmanagedType.SafeArray, SafeArraySubType=VarEnum.VT_DISPATCH, SafeArrayUserDefinedSubType=typeof(ConsoleKeyInfo))] public Array StructDispSafe(){return null;}  

verrà generata la seguente libreria dei tipi:the following type library is generated:

[id(0x60020004)]  
HRESULT StructUnkSafe([out, retval] SAFEARRAY(IUnknown*)* pRetVal);  
[id(0x60020005)]  
HRESULT StructDispSafe([out, retval] SAFEARRAY(IDispatch*)* pRetVal);  

Si noti che il campo SafeArrayUserDefinedSubType viene ignorato.Note that Tlbexp.exe ignores the SafeArrayUserDefinedSubType field.

Poiché le librerie dei tipi non possono contenere tutte le informazioni presenti negli assembly, può accadere che in Tlbexp.exe vengano ignorati alcuni dati durante il processo di esportazione.Because type libraries cannot accommodate all the information found in assemblies, Tlbexp.exe might discard some data during the export process. Per informazioni sul processo di trasformazione e sull'identificazione dell'origine di tutti i dati emessi in una libreria dei tipi, vedere Riepilogo della conversione da assembly a libreria dei tipi.For an explanation of the transformation process and identification of the source of each piece of information emitted to a type library, see the Assembly to Type Library Conversion Summary.

L'utilità di esportazione della libreria dei tipi esporta i metodi con parametri TypedReference di tipo VARIANT, anche se l'oggetto TypedReference non ha significato nel codice non gestito.Note that the Type Library Exporter exports methods that have TypedReference parameters as VARIANT, even though the TypedReference object has no meaning in unmanaged code. Quando si esportano metodi con parametri TypedReference, l'utilità in questione non genera un avviso o un errore e il codice non gestito che utilizza la libreria dei tipi risultante non viene eseguito correttamente.When you export methods that have TypedReference parameters, the Type Library Exporter will not generate a warning or error and unmanaged code that uses the resulting type library will not run properly.

L'utilità di esportazione della libreria dei tipi è supportata su Microsoft Windows 2000 e versioni successive.The Type Library Exporter is supported on Microsoft Windows 2000 and later.

EsempiExamples

Il comando che segue genera una libreria dei tipi con lo stesso nome dell'assembly contenuto in myTest.dll.The following command generates a type library with the same name as the assembly found in myTest.dll.

tlbexp myTest.dll  

Il comando che segue genera una libreria dei tipi con il nome clipper.tlb.The following command generates a type library with the name clipper.tlb.

tlbexp myTest.dll /out:clipper.tlb  

Nell'esempio che segue è illustrato come utilizzare Tlbexp.exe per esportare una libreria dei tipi da un assembly che fa riferimento ad assembly importati mediante Tlbimp.exe.The following example illustrates using Tlbexp.exe to export a type library from an assembly that references assemblies that were imported using Tlbimp.exe.

Utilizzare innanzitutto Tlbimp.exe per importare la libreria dei tipi myLib.tlb e salvarla con il nome myLib.dll.First use Tlbimp.exe to import the type library myLib.tlb and save it as myLib.dll.

tlbimp myLib.tlb /out:myLib.dll  

Il comando che segue utilizza il compilatore C# per compilare Sample.dll, che fa riferimento al file myLib.dll creato nell'esempio precedente.The following command uses the C# compiler to compile the Sample.dll, which references myLib.dll created in the previous example.

CSC Sample.cs /reference:myLib.dll /out:Sample.dll  

Il comando che segue genera una libreria dei tipi per Sample.dll che fa riferimento a myLib.dll.The following command generates a type library for Sample.dll that references myLib.dll.

tlbexp Sample.dll  

Vedere ancheSee Also

TypeLibExporterFlags
StrumentiTools
Regasm.exe (strumento di registrazione di assembly)Regasm.exe (Assembly Registration Tool)
Riepilogo della conversione da assembly a libreria dei tipiAssembly to Type Library Conversion Summary
Tlbimp.exe (utilità di importazione della libreria dei tipi)Tlbimp.exe (Type Library Importer)
Prompt dei comandiCommand Prompts