Tlbimp.exe (utilità di importazione della libreria dei tipi)Tlbimp.exe (Type Library Importer)

L'utilità di importazione della libreria dei tipi consente di convertire le definizioni dei tipi presenti in una libreria dei tipi COM nelle definizioni equivalenti in un assembly di Common Language Runtime.The Type Library Importer converts the type definitions found within a COM type library into equivalent definitions in a common language runtime assembly. L'output di Tlbimp.exe è un file binario (assembly) che contiene i metadati di runtime per i tipi definiti all'interno della libreria dei tipi originale.The output of Tlbimp.exe is a binary file (an assembly) that contains runtime metadata for the types defined within the original type library. È possibile esaminare questo file con strumenti quali Ildasm.exe.You can examine this file with tools such as Ildasm.exe.

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

tlbimp tlbFile [options]  

ParametriParameters

ArgomentoArgument DescriptionDescription
tlbFiletlbFile Nome di un file che contiene una libreria dei tipi COM.The name of any file that contains a COM type library.
OpzioneOption DescriptionDescription
/asmversion: versionnumber/asmversion: versionnumber Specifica il numero di versione dell'assembly da produrre.Specifies the version number of the assembly to produce. Specificare versionnumber nel formato major.minor.build.revision.Specify versionnumber in the format major.minor.build.revision.
/company: companyinformation/company: companyinformation Aggiunge le informazioni sulla società all'assembly di output.Adds company information to the output assembly.
/copyright: copyrightinformation/copyright: copyrightinformation Aggiunge le informazioni sul copyright all'assembly di output.Adds copyright information to the output assembly. Queste informazioni possono essere visualizzate nella finestra di dialogo Proprietà file dell'assembly.This information can be viewed in the File Properties dialog box for the assembly.
/delaysign/delaysign Indica a Tlbimp.exe di firmare l'assembly risultante con un nome sicuro utilizzando la firma ritardata.Specifies to Tlbimp.exe to sign the resulting assembly with a strong name using delayed signing. È necessario specificare questa opzione con /keycontainer:, /keyfile: o /publickey:.You must specify this option with either the /keycontainer:, /keyfile:, or /publickey: option. Per altre informazioni sulla firma ritardata, vedere Ritardo della firma di un assembly.For more information on the delayed signing process, see Delay Signing an Assembly.
/help/help Visualizza la sintassi e le opzioni di comando dello strumento.Displays command syntax and options for the tool.
/keycontainer: containername/keycontainer: containername Firma l'assembly risultante con un nome sicuro usando la coppia di chiavi pubblica/privata presente nel contenitore di chiavi specificato da containername.Signs the resulting assembly with a strong name using the public/private key pair found in the key container specified by containername.
/keyfile: filename/keyfile: filename Firma l'assembly risultante con un nome sicuro usando la coppia di chiavi pubblica/privata ufficiale dell'editore trovata in filename.Signs the resulting assembly with a strong name using the publisher's official public/private key pair found in filename.
/machine: machinetype/machine: machinetype Crea un assembly destinato al tipo di computer specificato (microprocessore).Creates an assembly that targets the specified machine type (microprocessor). Tipi di computer supportati: x86, x64, Itanium e Agnostic.Supported machine types: x86, x64, Itanium, and Agnostic.
/namespace: namespace/namespace: namespace Specifica lo spazio dei nomi in cui si desidera produrre l'assembly.Specifies the namespace in which to produce the assembly.
/noclassmembers/noclassmembers Impedisce a Tlbimp.exe di aggiungere membri alle classi.Prevents Tlbimp.exe from adding members to classes. In questo modo è possibile evitare un potenziale oggetto TypeLoadException.This avoids a potential TypeLoadException.
/nologo/nologo Evita la visualizzazione del messaggio di avvio Microsoft.Suppresses the Microsoft startup banner display.
/out: filename/out: filename Specifica il nome del file di output, l'assembly e lo spazio dei nomi in cui scrivere le definizioni dei metadati.Specifies the name of the output file, assembly, and namespace in which to write the metadata definitions. L'opzione /out non influisce sullo spazio dei nomi dell'assembly se la libreria dei tipi specifica l'attributo personalizzato del linguaggio di definizione dell'interfaccia (IDL, Interface Definition Language) che controlla in modo esplicito lo spazio dei nomi dell'assembly.The /out option has no effect on the assembly's namespace if the type library specifies the Interface Definition Language (IDL) custom attribute that explicitly controls the assembly's namespace. Se non si specifica questa opzione, i metadati vengono scritti in un file avente lo stesso nome della libreria dei tipi definita all'interno del file di input e l'estensione .dll.If you do not specify this option, Tlbimp.exe writes the metadata to a file with the same name as the actual type library defined within the input file and assigns it a .dll extension. Se il file di output ha lo stesso nome del file di input, lo strumento genera un errore al fine di non sovrascrivere la libreria dei tipi.If the output file is the same name as the input file, the tool generates an error to prevent overwriting the type library.
/primary/primary Produce un assembly di interoperabilità primario per la libreria dei tipi specificata.Produces a primary interop assembly for the specified type library. All'assembly vengono aggiunte informazioni che indicano che l'assembly è prodotto dall'editore della libreria dei tipi.Information is added to the assembly indicating that the publisher of the type library produced the assembly. Specificando un assembly di interoperabilità primario, si rende differente l'assembly di un editore da qualsiasi altro assembly creato dalla libreria dei tipi utilizzando Tlbimp.exe.By specifying a primary interop assembly, you differentiate a publisher's assembly from any other assemblies that are created from the type library using Tlbimp.exe. È opportuno che l'opzione /primary venga usata solo dall'editore della libreria dei tipi in corso di importazione con Tlbimp.exe.You should only use the /primary option if you are the publisher of the type library that you are importing with Tlbimp.exe. Si noti che è necessario firmare un assembly di interoperabilità primario con un nome sicuro.Note that you must sign a primary interop assembly with a strong name. Per altre informazioni, vedere Assembly di interoperabilità primari.For more information, see Primary Interop Assemblies.
/product: productinformation/product: productinformation Aggiunge le informazioni sul prodotto all'assembly di output.Adds product information to the output assembly. Queste informazioni possono essere visualizzate nella finestra di dialogo Proprietà file dell'assembly.This information can be viewed in the File Properties dialog box for the assembly.
/productversion: productversioninformation/productversion: productversioninformation Aggiunge le informazioni sulla versione del prodotto all'assembly di output.Adds product version information to the output assembly. Non esistono restrizioni di formato.There are no format restrictions. Queste informazioni possono essere visualizzate nella finestra di dialogo Proprietà file dell'assembly.This information can be viewed in the File Properties dialog box for the assembly.
/publickey: filename/publickey: filename Specifica il file che contiene la chiave pubblica da utilizzare per firmare l'assembly risultante.Specifies the file containing the public key to use to sign the resulting assembly. Se si specifica l'opzione /keyfile: o /keycontainer: anziché /publickey:, la chiave pubblica viene generata dalla coppia di chiavi pubblica/privata fornita con /keyfile: o /keycontainer:.If you specify the /keyfile: or /keycontainer: option instead of /publickey:, Tlbimp.exe generates the public key from the public/private key pair supplied with /keyfile: or /keycontainer:. L'opzione /publickey: supporta scenari di firma ritardata e chiavi di test.The /publickey: option supports test key and delay signing scenarios. Il file è nel formato generato da Sn.exe.The file is in the format generated by Sn.exe. Per altre informazioni, vedere l'opzione -p di Sn.exe in Sn.exe (strumento Nome sicuro).For more information, see the -p option of Sn.exe in Strong Name Tool (Sn.exe).
/reference: filename/reference: filename Specifica il file di assembly da utilizzare per risolvere i riferimenti a tipi definiti all'esterno della libreria dei tipi corrente.Specifies the assembly file to use to resolve references to types defined outside the current type library. Se non si specifica l'opzione /reference, viene importata automaticamente in modo ricorsivo qualsiasi libreria dei tipi esterna a cui faccia riferimento la libreria dei tipi che viene importata.If you do not specify the /reference option, Tlbimp.exe automatically recursively imports any external type library that the type library being imported references. Se si specifica l'opzione /reference, lo strumento tenta di risolvere i tipi esterni negli assembly a cui si fa riferimento prima di importare altre librerie dei tipi.If you specify the /reference option, the tool attempts to resolve external types in the referenced assemblies before it imports other type libraries.
/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.
/strictref/strictref Non esegue l'importazione della libreria dei tipi se non è possibile risolvere tutti i riferimenti all'interno dell'assembly corrente, degli assembly specificati con l'opzione /reference o degli assembly di interoperabilità primari registrati.Does not import a type library if the tool cannot resolve all references within the current assembly, the assemblies specified with the /reference option, or registered primary interop assemblies (PIAs).
/strictref:nopia/strictref:nopia Opzione analoga a /strictref, ma ignora gli assembly di interoperabilità primari.Same as /strictref, but ignores PIAs.
/sysarray/sysarray Indica allo strumento di importare un SafeArray in stile COM come tipo di Array gestito.Specifies to the tool to import a COM style SafeArray as a managed Array type.
/tlbreference: filename/tlbreference: filename Specificare il file della libreria dei tipi da utilizzare per risolvere i riferimenti alla libreria dei tipi senza consultare il Registro di sistema.Specifies the type library file to use to resolve type library references without consulting the registry.

Se si utilizza questa opzione non verranno caricati alcuni formati precedenti di librerie dei tipi.Note that this option will not load some older type library formats. È comunque possibile caricare i formati precedenti di librerie dei tipi in modo implicito mediante il Registro di sistema o la directory corrente.However, you can still load older type library formats implicitly through the registry or current directory.
/trademark: trademarkinformation/trademark: trademarkinformation Aggiunge le informazioni sul marchio all'assembly di output.Adds trademark information to the output assembly. Queste informazioni possono essere visualizzate nella finestra di dialogo Proprietà file dell'assembly.This information can be viewed in the File Properties dialog box for the assembly.
/transform: transformname/transform: transformname Trasforma i metadati come specificato dal parametro transformname.Transforms metadata as specified by the transformname parameter.

Specificare dispret per il parametro transformname per trasformare i parametri [out, retval] dei metodi su interfacce solo dispatch (dispinterfaces) in valori restituiti.Specify dispret for the transformname parameter to transform [out, retval] parameters of methods on dispatch-only interfaces (dispinterfaces) into return values.

Per ulteriori informazioni su questa opzione, vedere gli esempi più avanti in questo argomento.For more information about this option, see the examples later in this topic.
/unsafe/unsafe Produce interfacce senza controlli di sicurezza di .NET Framework.Produces interfaces without .NET Framework security checks. Chiamare un metodo esposto in questo modo può comportare rischi di sicurezza.Calling a method that is exposed in this way might pose a security risk. Non utilizzare questa opzione a meno che non si conoscano i rischi derivanti dall'esposizione di codice di questo tipo.You should not use this option unless you are aware of the risks of exposing such code.
/verbose/verbose Specifica la modalità dettagliata e visualizza informazioni aggiuntive sulla libreria dei tipi importata.Specifies verbose mode; displays additional information about the imported type library.
/VariantBoolFieldToBool/VariantBoolFieldToBool Converte i campi VARIANT_BOOL nelle strutture in Boolean.Converts VARIANT_BOOL fields in structures to Boolean.
/?/? 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 Tlbimp.exe non sono soggette alla distinzione tra maiuscole e minuscole e per specificarle non è necessario seguire un ordine particolare.The command-line options for Tlbimp.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. Pertanto, /n equivale a /nologo e /ou: outfile.dll equivale a /out: outfile.dll.Therefore, /n is equivalent to /nologo and /ou: outfile.dll is equivalent to /out: outfile.dll.

OsservazioniRemarks

Tlbimp.exe converte un'intera libreria dei tipi in blocco.Tlbimp.exe performs conversions on an entire type library at one time. Non è possibile utilizzare lo strumento per generare informazioni sui tipi per un subset dei tipi definiti in una singola libreria dei tipi.You cannot use the tool to generate type information for a subset of the types defined within a single type library.

Spesso risulta utile o necessario poter assegnare agli assembly nomi sicuri.It is often useful or necessary to be able to assign strong names to assemblies. Pertanto, Tlbimp.exe include opzioni che permettono di fornire le informazioni necessarie alla generazione di assembly con nomi sicuri.Therefore, Tlbimp.exe includes options for supplying the information necessary to generate strongly named assemblies. Entrambe le opzioni /keyfile: e /keycontainer: consentono di firmare gli assembly con nomi sicuri.Both the /keyfile: and /keycontainer: options sign assemblies with strong names. Pertanto, è sufficiente specificare solo una di queste opzioni alla volta.Therefore, it is logical to supply only one of these options at a time.

È possibile specificare più assembly di riferimento usando l'opzione /reference più volte.You can specify multiple reference assemblies by using the /reference option multiple times.

Quando si importa una libreria dei tipi da un modulo contenente più librerie dei tipi, è possibile aggiungere un ID risorsa a un file di libreria dei tipi.A resource ID can optionally be appended to a type library file when importing a type library from a module containing multiple type libraries. Tlbimp.exe riesce a individuare questo file solo se si trova nella directory corrente o se si specifica il percorso completo.Tlbimp.exe is able to locate this file only if it is in the current directory or if you specify the full path. Vedere l'esempio riportato più avanti in questo argomento.See the example later in this topic.

EsempiExamples

Il comando riportato di seguito genera un assembly con lo stesso nome della libreria dei tipi presente in myTest.tlb e con l'estensione .dll.The following command generates an assembly with the same name as the type library found in myTest.tlb and with the .dll extension.

tlbimp myTest.tlb   

Il comando riportato di seguito genera un assembly denominato myTest.dll.The following command generates an assembly with the name myTest.dll.

tlbimp  myTest.tlb  /out:myTest.dll  

Il comando riportato di seguito genera un assembly con lo stesso nome della libreria dei tipi specificata da MyModule.dll\1 e con estensione dll.The following command generates an assembly with the same name as the type library specified by MyModule.dll\1 and with the .dll extension. MyModule.dll\1 deve trovarsi nella directory corrente.MyModule.dll\1 must be located in the current directory.

tlbimp MyModule.dll\1  

Il comando riportato di seguito genera un assembly denominato myTestLib.dll per la libreria dei tipi TestLib.dll.The following command generates an assembly with the name myTestLib.dll for the type library TestLib.dll. L'opzione /transform:dispret trasforma tutti i parametri [out, retval] dei metodi in dispinterfaces nella libreria dei tipi in valori restituiti nella libreria gestita.The /transform:dispret option transforms any [out, retval] parameters of methods on dispinterfaces in the type library into return values in the managed library.

tlbimp TestLib.dll /transform:dispret /out:myTestLib.dll  

La libreria dei tipi TestLib.dll, nell'esempio precedente, include un metodo dispinterface denominato SomeMethod che restituisce un valore void e presenta un parametro [out, retval].The type library TestLib.dll, in the preceding example, includes a dispinterface method named SomeMethod that returns void and has an [out, retval] parameter. Il codice riportato di seguito è la firma del metodo della libreria dei tipi di input per SomeMethod in TestLib.dll.The following code is the input type library method signature for SomeMethod in TestLib.dll.

void SomeMethod([out, retval] VARIANT_BOOL*);  

Se si specifica l'opzione /transform:dispret, Tlbimp.exe trasformerà il parametro [out, retval] di SomeMethodin un valore restituito bool.Specifying the /transform:dispret option causes Tlbimp.exe to transform the [out, retval] parameter of SomeMethod into a bool return value. Di seguito è riportata la firma del metodo prodotta da Tlbimp.exe per SomeMethod nella libreria gestita myTestLib.dll quando viene specificata l'opzione /transform:dispret.The following is the method signature that Tlbimp.exe produces for SomeMethod in the managed library myTestLib.dll when the /transform:dispret option is specified.

bool SomeMethod();  

Se si usa Tlbimp.exe per produrre una libreria gestita per TestLib.dll senza specificare /transform:dispret, verrà prodotta la firma del metodo riportata di seguito per SomeMethod nella libreria gestita myTestLib.dll.If you use Tlbimp.exe to produce a managed library for TestLib.dll without specifying the /transform:dispret, the tool produces the following method signature for SomeMethod in the managed library myTestLib.dll.

void SomeMethod(out bool x);  

Vedere ancheSee also