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


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

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

Это средство устанавливается автоматически с Visual Studio и пакетом SDK Windows. Чтобы запустить инструмент, мы рекомендуем использовать командную строку Visual Studio или командную строку пакета Windows SDK (командную оболочку). Эти служебные программы позволяют легко работать с инструментом, не переходя к папке установки. Дополнительные сведения см. в разделе Командная строка Visual Studio и пакета Windows SDK.

  • Если на компьютере установлена среда Visual Studio: на панели задач последовательно щелкните Start, All Programs, Visual Studio, Visual Studio Tools и Visual Studio Command Prompt.

    – или –

    Если на компьютере установлен пакет Windows SDK: на панели задач щелкните Start, выберите All Programs и откройте папку с пакетом Windows SDK, затем щелкните Command Prompt (или CMD Shell).

  • В командной строке введите следующее:

tlbexp assemblyName [/out:file] [/nologo] [/silent] [/verbose]

Параметры

Аргумент

Описание

имя_сборки

Сборка, для которой экспортируется библиотека типов.

Параметр

Описание

/asmpath:каталог

Указывает место поиска сборок. При использовании этого параметра необходимо непосредственно задать места поиска указанных сборок, включая текущий каталог.

При использовании параметра asmpath программа экспорта библиотек типов не будет искать сборку в глобальном кэше сборок.

/help

Отображает синтаксис команд и параметры программы.

/names:имя_файла

Определяет регистр букв имен в библиотеке типов. Аргумент имя_файла задает текстовый файл. Каждая строка файла определяет регистр букв одного имени в библиотеке типов.

/nologo

Отключает отображение эмблемы Майкрософт при запуске.

/oldnames

Задает экспорт имен типов с оформлением в случае конфликта имен типов. Следует иметь в виду, что такой режим использовался по умолчанию в версиях .NET Framework, предшествующих версии 2.0.

/out:файл

Определяет имя создаваемого файла библиотеки типов. Если этот параметр не задан, Tlbexp.exe создает библиотеку типов с именем, совпадающим с именем сборки (фактическим именем сборки, которое необязательно должно совпадать с именем файла, содержащего сборку), и расширением .tlb.

/silent

Отключает отображение сообщений об успешно выполненных операциях.

/tlbreference:файл_библиотеки_типов

Задает явное разрешение ссылок на библиотеки типов без обращений к реестру. Например, если сборка B указывает на сборку A, с помощью данного параметра можно предоставить явную ссылку на библиотеку типов, а не использовать библиотеку типов, указанную в реестре. Tlbexp.exe выполняет проверку версий, чтобы убедиться, что версия библиотеки типов соответствует версии сборки; в противном случае выдается ошибка.

Следует иметь в виду, что параметр tlbreference не отменяет обращения к реестру в случае применения атрибута ComImportAttribute к интерфейсу, впоследствии реализуемому другим типом.

/tlbrefpath:путь

Полный путь к указанной библиотеке типов.

/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 нельзя использовать с целью генерации сведений о типах для подмножества типов, определенных в сборке.

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

Программа экспорта библиотек типов поддерживается в Microsoft Windows 2000 и последующих версиях.

Примеры

Следующая команда создает библиотеку типов с таким же именем, как у сборки, найденной в 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

См. также

Ссылки

TypeLibExporterFlags

Regasm.exe (средство регистрации сборок)

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

Командная строка Visual Studio и пакета Windows SDK

Другие ресурсы

Инструменты .NET Framework

Резюме преобразования сборки в библиотеку типов

Журнал изменений

Дата

Журнал

Причина

Апрель 2011

Добавлены сведения об использовании командных строк Visual Studio и Windows SDK.

Улучшение информации.