Tlbexp.exe (программа экспорта библиотек типов)Tlbexp.exe (Type Library Exporter)

Программа экспорта библиотек типов создает библиотеку типов, описывающую типы, определенные в сборке среды CLR.The Type Library Exporter generates a type library that describes the types defined in a common language runtime assembly.

Эта программа автоматически устанавливается вместе с Visual Studio.This tool is automatically installed with Visual Studio. Чтобы применить этот инструмент, воспользуйтесь командной строкой разработчика для Visual Studio (или командной строкой Visual Studio в Windows 7).To run the tool, use the Developer Command Prompt for Visual Studio (or the Visual Studio Command Prompt in Windows 7). Дополнительные сведения см. в разделе Командные строки.For more information, see Command Prompts.

В командной строке введите следующее.At the command prompt, type the following:

СинтаксисSyntax

tlbexp assemblyName [options]  

ПараметрыParameters

АргументArgument ОписаниеDescription
имя_сборкиassemblyName Сборка, для которой экспортируется библиотека типов.The assembly for which to export a type library.
ПараметрOption ОписаниеDescription
/asmpath: directory/asmpath: directory Задает место поиска сборок.Specifies the location to search for assemblies. При использовании этого параметра необходимо явно указать места поиска указанных сборок, включая текущий каталог.If you use this option, you must explicitly specify the locations to search for referenced assemblies, including the current directory.

При использовании параметра asmpath программа экспорта библиотек типов не будет искать сборку в глобальном кэше сборок.When you use the asmpath option, the Type Library Exporter will not look for an assembly in the global assembly cache (GAC).
/help/help Отображает синтаксис команд и параметров программы.Displays command syntax and options for the tool.
/names: filename/names: filename Определяет регистр букв имен в библиотеке типов.Specifies the capitalization of names in a type library. Аргумент filename задает текстовый файл.The filename argument is a text file. Каждая строка файла определяет регистр букв одного имени в библиотеке типов.Each line in the file specifies the capitalization of one name in the type library.
/nologo/nologo Отключает отображение эмблемы Майкрософт при запуске.Suppresses the Microsoft startup banner display.
/oldnames/oldnames Задает принудительный экспорт внутренних имен типов программой Tlbexp.exe в случае конфликта имен типов.Forces Tlbexp.exe to export decorated type names if there is a type name conflict. Следует иметь в виду, что такой режим использовался по умолчанию в версиях .NET Framework, предшествующих версии 2.0.Note that this was the default behavior in versions prior to the .NET Framework version 2.0.
/out: file/out: file Задает имя создаваемого файла библиотеки типов.Specifies the name of the type library file to generate. Если этот параметр не задан, программа Tlbexp.exe создает библиотеку типов с именем, совпадающим с именем сборки (фактическим именем сборки, которое необязательно должно совпадать с именем файла, содержащего сборку), и расширением 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 Отключает отображение конкретного предупреждения.Suppresses the display of the specified warning. Этот параметр невозможно использовать с параметром /silent.This option cannot be used with /silent.
/silent/silent Запрещает отображение сообщений об успешно выполненных операциях.Suppresses the display of success messages. Этот параметр невозможно использовать с параметром /silence.This option cannot be used with /silence.
/tlbreference: typelibraryname/tlbreference: typelibraryname Задает принудительное явное разрешение ссылок на библиотеки типов программой Tlbexp.exe без обращений к реестру.Forces Tlbexp.exe to explicitly resolve type library references without consulting the registry. Например, если сборка B указывает на сборку A, с помощью данного параметра можно предоставить явную ссылку на библиотеку типов, а не использовать указанную в реестре библиотеку типов.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. Программа Tlbexp.exe выполняет проверку версий, чтобы версия библиотеки типов соответствовала версии сборки; в противном случае выдается ошибка.Tlbexp.exe performs a version check to ensure that the type library version matches the assembly version; otherwise, it generates an error.

Следует иметь в виду, что параметр tlbreference не отменяет обращения к реестру в тех случаях, когда атрибут ComImportAttribute применяется к интерфейсу, который впоследствии реализуется другим типом.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 Полный путь к указанной библиотеке типов.Fully qualified path to a referenced type library.
/win32/win32 При компиляции на 64-разрядном компьютере данный параметр программы Tlbexp.exe задает создание 32-разрядной библиотеки типов.When compiling on a 64-bit computer, this option specifies that Tlbexp.exe generates a 32-bit type library.
/win64/win64 При компиляции на 32-разрядном компьютере этот параметр указывает, что средство Tlbexp.exe должно создать 64-разрядную библиотеку типов.When compiling on a 32-bit computer, this option specifies that Tlbexp.exe generates a 64-bit type library.
/verbose/verbose Задает режим подробного вывода информации и отображает список всех сборок, на которые есть ссылки и для которых необходимо создать библиотеку типов.Specifies verbose mode; displays a list of any referenced assemblies for which a type library needs to be generated.
/?/? Отображает синтаксис команд и параметров программы.Displays command syntax and options for the tool.

Примечание

В параметрах командной строки для программы Tlbexp.exe не учитывается регистр, и такие параметры могут задаваться в любом порядке.The command-line options for Tlbexp.exe are case-insensitive and can be supplied in any order. Можно вводить только часть имени параметра, достаточную для его однозначной идентификации.You only need to specify enough of the option to uniquely identify it. Например, /n эквивалентно /nologo, а /o: outfile.tlb эквивалентно /out: outfile.tlb.For example, /n is equivalent to /nologo, and /o: outfile.tlb is equivalent to /out: outfile.tlb.

ПримечанияRemarks

Программа Tlbexp.exe создает библиотеку типов, содержащую определения типов, заданных в сборке.Tlbexp.exe generates a type library that contains definitions of the types defined in the assembly. Приложения, такие как Visual Basic 6.0, могут использовать созданную библиотеку типов для связывания с типами .NET, определенными в сборке.Applications such as Visual Basic 6.0 can use the generated type library to bind to the .NET types defined in the assembly.

Важно!

Программу Tlbexp.exe нельзя использовать для экспорта файлов метаданных Windows (WINMD).You cannot use Tlbexp.exe to export Windows metadata (.winmd) files. Экспорт сборок среды выполнения Windows не поддерживается.Exporting Windows Runtime assemblies is not supported.

Вся сборка преобразуется целиком.The entire assembly is converted at once. Программу Tlbexp.exe нельзя использовать с целью генерации сведений о типах для подмножества типов, определенных в сборке.You cannot use Tlbexp.exe to generate type information for a subset of the types defined in an assembly.

Программа Tlbexp.exe не может использоваться для создания библиотеки типов из сборки, импортированной с помощью программы импорта библиотек типов (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). Вместо этого следует указать исходную библиотеку типов, импортированную с помощью программы Tlbimp.exe.Instead, you should refer to the original type library that was imported with Tlbimp.exe. Библиотеку типов можно экспортировать из сборки, содержащей ссылки на сборки, импортированные с помощью программы Tlbimp.exe.You can export a type library from an assembly that references assemblies that were imported using Tlbimp.exe. См. раздел примеров ниже.See the examples section below.

Программа Tlbexp.exe размещает созданные библиотеки типов в текущем рабочем каталоге или каталоге, заданном для выходного файла.Tlbexp.exe places generated type libraries in the current working directory or the directory specified for the output file. Из одной сборки можно создать несколько библиотек типов.A single assembly might cause several type libraries to be generated.

Программа Tlbexp.exe создает библиотеки типов, но не регистрирует их.Tlbexp.exe generates a type library but does not register it. В этом состоит ее отличие от программы регистрации сборок (Regasm.exe), которая и создает библиотеку типов, и регистрирует ее.This is in contrast to the Assembly Registration tool (Regasm.exe), which both generates and registers a type library. Чтобы создать и зарегистрировать библиотеку типов в COM, используйте программу Regasm.exe.To generate and register a type library with COM, use Regasm.exe.

Если параметры /win32 и /win64 не заданы, программа Tlbexp.exe создает 32-разрядную или 64-разрядную библиотеку типов в соответствии с типом компьютера, на котором выполняется компиляция (32-разрядный или 64-разрядный компьютер).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). Для перекрестной компиляции можно задать параметр /win64 на 32-разрядном компьютере, чтобы создать 64-разрядную библиотеку типов, или параметр /win32 на 64-разрядном компьютере, чтобы создать 32-разрядную библиотеки типов.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. В 32-разрядных библиотеках типов значение SYSKIND задается как SYS_WIN32.In 32-bit type libraries, the SYSKIND value is set to SYS_WIN32. В 64-разрядных библиотеках типов значение параметра SYSKIND равно SYS_WIN64.In 64-bit type libraries, the SYSKIND value is set to SYS_WIN64. Все преобразования типов данных (например, типы данных с размером указателя, такие как IntPtr и UIntPtr) производятся соответствующим образом.All data type transformations (for example, pointer-sized data types such as IntPtr and UIntPtr) are converted appropriately.

Если с помощью атрибута MarshalAsAttribute в качестве значения поля SafeArraySubType задается VT_UNKOWN или VT_DISPATCH, программа Tlbexp.exe игнорирует все последующие случаи использования поля SafeArrayUserDefinedSubType.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. Например, для следующих подписей: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;}  

создается следующая библиотека типов.the following type library is generated:

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

Обратите внимание, что программа Tlbexp.exe игнорирует поле SafeArrayUserDefinedSubType.Note that Tlbexp.exe ignores the SafeArrayUserDefinedSubType field.

Так как библиотеки типов не могут разместить все данные, найденные в сборке, программа Tlbexp.exe может пропустить некоторые данные в процессе экспорта.Because type libraries cannot accommodate all the information found in assemblies, Tlbexp.exe might discard some data during the export process. Описание процесса преобразования и определения для источников каждого элемента данных, передаваемого в библиотеку типов, см. в разделе Общие сведения о преобразовании сборки в библиотеку типов.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.

Следует иметь в виду, что программа экспорта библиотек типов экспортирует методы, для которых в качестве параметра TypedReference задано VARIANT, несмотря на то что объект TypedReference теряет смысл в неуправляемом коде.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. При экспорте методов с параметрами TypedReference программа экспорта библиотек типов не выдает предупреждение или сообщение об ошибке, и неуправляемый код, в котором используется полученная библиотека типов, будет выполняться неправильно.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.

Программа экспорта библиотек типов поддерживается в Microsoft Windows 2000 и более поздних версиях.The Type Library Exporter is supported on Microsoft Windows 2000 and later.

ПримерыExamples

Следующая команда создает библиотеку типов с таким же именем, что и у сборки, найденной в myTest.dll.The following command generates a type library with the same name as the assembly found in myTest.dll.

tlbexp myTest.dll  

Следующая команда создает библиотеку типов с именем clipper.tlb.The following command generates a type library with the name clipper.tlb.

tlbexp myTest.dll /out:clipper.tlb  

В следующем примере показано использование программы Tlbexp.exe для экспорта библиотеки типов из сборки, на которую ссылаются сборки, импортированные с помощью программы 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.

Сначала с помощью программы Tlbimp.exe импортируйте библиотеку типов myLib.tlb и сохраните ее как 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  

Следующая команда использует компилятор C# для компиляции библиотеки Sample.dll,, которая ссылается на библиотеку myLib.dll, созданную в предыдущем примере.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  

Следующая команда создает библиотеку типов для файла Sample.dll, ссылающегося на myLib.dll.The following command generates a type library for Sample.dll that references myLib.dll.

tlbexp Sample.dll  

См. такжеSee also