Поделиться через


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

Программа экспорта библиотек типов создает библиотеку типов, описывающую типы, определенные в сборке среды CLR.

Эта программа автоматически устанавливается вместе с Visual Studio. Для запуска этого средства используйте Командную строку разработчика или PowerShell для разработчиков в Visual Studio.

Введите в командной строке: .

Синтаксис

tlbexp assemblyName [options]  

Параметры

Аргумент Description
имя_сборки Сборка, для которой экспортируется библиотека типов.
Вариант Описание
/asmpath: directory Задает место поиска сборок. При использовании этого параметра необходимо явно указать места поиска указанных сборок, включая текущий каталог.

При использовании параметра asmpath программа экспорта библиотек типов не будет искать сборку в глобальном кэше сборок.
/help Отображает синтаксис команд и параметров программы.
/names: filename Определяет регистр букв имен в библиотеке типов. Аргумент filename задает текстовый файл. Каждая строка файла определяет регистр букв одного имени в библиотеке типов.
/nologo Отключает отображение эмблемы Майкрософт при запуске.
/oldnames Задает принудительный экспорт внутренних имен типов программой Tlbexp.exe в случае конфликта имен типов. Обратите внимание, что это поведение по умолчанию в версиях до платформа .NET Framework версии 2.0.
/out: file Задает имя создаваемого файла библиотеки типов. Если этот параметр не задан, программа Tlbexp.exe создает библиотеку типов с именем, совпадающим с именем сборки (фактическим именем сборки, которое необязательно должно совпадать с именем файла, содержащего сборку), и расширением TLB.
/silence: warningnumber Отключает отображение конкретного предупреждения. Этот параметр невозможно использовать с параметром /silent.
/silent Запрещает отображение сообщений об успешно выполненных операциях. Этот параметр невозможно использовать с параметром /silence.
/tlbreference: typelibraryname Задает принудительное явное разрешение ссылок на библиотеки типов программой Tlbexp.exe без обращений к реестру. Например, если сборка B указывает на сборку A, с помощью данного параметра можно предоставить явную ссылку на библиотеку типов, а не использовать указанную в реестре библиотеку типов. Программа Tlbexp.exe выполняет проверку версий, чтобы версия библиотеки типов соответствовала версии сборки; в противном случае выдается ошибка.

Следует иметь в виду, что параметр tlbreference не отменяет обращения к реестру в тех случаях, когда атрибут ComImportAttribute применяется к интерфейсу, который впоследствии реализуется другим типом.
/tlbrefpath: path Полный путь к указанной библиотеке типов.
/win32 При компиляции на 64-разрядном компьютере данный параметр программы Tlbexp.exe задает создание 32-разрядной библиотеки типов.
/win64 При компиляции на 32-разрядном компьютере этот параметр указывает, что средство Tlbexp.exe должно создать 64-разрядную библиотеку типов.
/verbose Задает режим подробного вывода информации и отображает список всех сборок, на которые есть ссылки и для которых необходимо создать библиотеку типов.
/? Отображает синтаксис команд и параметров программы.

Примечание.

В параметрах командной строки для программы Tlbexp.exe не учитывается регистр, и такие параметры могут задаваться в любом порядке. Можно вводить только часть имени параметра, достаточную для его однозначной идентификации. Например, /n эквивалентно /nologo, а /o: outfile.tlb эквивалентно /out: outfile.tlb.

Замечания

Программа Tlbexp.exe создает библиотеку типов, содержащую определения типов, заданных в сборке. Приложения, такие как Visual Basic 6.0, могут использовать созданную библиотеку типов для связывания с типами .NET, определенными в сборке.

Внимание

Программу Tlbexp.exe нельзя использовать для экспорта файлов метаданных Windows (WINMD). Экспорт сборок среды выполнения Windows не поддерживается.

Вся сборка преобразуется целиком. Программу Tlbexp.exe нельзя использовать с целью генерации сведений о типах для подмножества типов, определенных в сборке.

Программа Tlbexp.exe не может использоваться для создания библиотеки типов из сборки, импортированной с помощью программы импорта библиотек типов (Tlbimp.exe). Вместо этого следует указать исходную библиотеку типов, импортированную с помощью программы Tlbimp.exe. Библиотеку типов можно экспортировать из сборки, содержащей ссылки на сборки, импортированные с помощью программы Tlbimp.exe. См. раздел примеров ниже.

Программа Tlbexp.exe размещает созданные библиотеки типов в текущем рабочем каталоге или каталоге, заданном для выходного файла. Из одной сборки можно создать несколько библиотек типов.

Программа Tlbexp.exe создает библиотеки типов, но не регистрирует их. В этом состоит ее отличие от программы регистрации сборок (Regasm.exe), которая и создает библиотеку типов, и регистрирует ее. Чтобы создать и зарегистрировать библиотеку типов в COM, используйте программу Regasm.exe.

Если параметры /win32 и /win64 не заданы, программа Tlbexp.exe создает 32-разрядную или 64-разрядную библиотеку типов в соответствии с типом компьютера, на котором выполняется компиляция (32-разрядный или 64-разрядный компьютер). Для перекрестной компиляции можно задать параметр /win64 на 32-разрядном компьютере, чтобы создать 64-разрядную библиотеку типов, или параметр /win32 на 64-разрядном компьютере, чтобы создать 32-разрядную библиотеки типов. В 32-разрядных библиотеках типов значение SYSKIND задается как SYS_WIN32. В 64-разрядных библиотеках типов значение параметра SYSKIND равно SYS_WIN64. Все преобразования типов данных (например, типы данных с размером указателя, такие как IntPtr и UIntPtr) производятся соответствующим образом.

Если с помощью атрибута MarshalAsAttribute в качестве значения поля SafeArraySubType задается VT_UNKNOWN или VT_DISPATCH, программа Tlbexp.exe игнорирует все последующие случаи использования поля SafeArrayUserDefinedSubType. Например, для следующих подписей:

[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;}  

создается следующая библиотека типов.

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

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

Так как библиотеки типов не могут разместить все данные, найденные в сборке, программа Tlbexp.exe может пропустить некоторые данные в процессе экспорта. Описание процесса преобразования и определения для источников каждого элемента данных, передаваемого в библиотеку типов, см. в разделе Общие сведения о преобразовании сборки в библиотеку типов.

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

Примеры

Следующая команда создает библиотеку типов с таким же именем, что и у сборки, найденной в myTest.dll.

tlbexp myTest.dll  

Следующая команда создает библиотеку типов с именем clipper.tlb.

tlbexp myTest.dll /out:clipper.tlb  

В следующем примере показано использование программы Tlbexp.exe для экспорта библиотеки типов из сборки, на которую ссылаются сборки, импортированные с помощью программы Tlbimp.exe.

Сначала с помощью программы Tlbimp.exe импортируйте библиотеку типов myLib.tlb и сохраните ее как myLib.dll.

tlbimp myLib.tlb /out:myLib.dll  

Следующая команда использует компилятор C# для компиляции Sample.dllссылок myLib.dll , созданных в предыдущем примере.

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

Следующая команда создает библиотеку типов для файла Sample.dll, ссылающегося на myLib.dll.

tlbexp Sample.dll  

См. также