Практическое руководство. Создание основной сборки взаимодействия с помощью программы Tlbimp.exe

Существует два способа создания основной сборки взаимодействия.

  • С помощью программы импорта библиотек типов (Tlbimp.exe), предоставляемой Windows SDK.

    Использование программы Tlbimp.exe — это самый простой способ создания основных сборок взаимодействия. Эта программа предоставляет следующие меры безопасности:

    • перед созданием сборок взаимодействия для ссылок на любые вложенные библиотеки типов проверяет наличие других зарегистрированных основных сборок взаимодействия;

    • отказывается создавать основную сборку взаимодействия, если не указан контейнер или имя файла, позволяющие присвоить строгое имя основной сборке взаимодействия;

    • отказывается создавать основную сборку взаимодействия, если пропущены ссылки на зависимые сборки;

    • отказывается создавать основную сборку взаимодействия, если вы добавили ссылки на зависимые сборки, не являющиеся основными сборками взаимодействия.

  • Создание основных сборок взаимодействия в исходном коде вручную с помощью языка, совместимого со спецификацией CLS, например C#. Этот подход полезен, когда библиотека типов недоступна.

Для подписи сборки строгим именем необходимо иметь пару криптографических ключей. Подробнее см. в разделе Создание пары ключей.

Создание основной сборки взаимодействия с помощью программы Tlbimp.exe

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

    tlbimpфайл_tlb/primary /keyfile:имя_файла/out:имя_сборки

    В этой команде файл_tlb — это файл, содержащий библиотеку типов COM, имя_файла — это имя контейнера или файла, содержащего пару ключей, а имя_сборки — это имя сборки, которую необходимо подписать строгим именем.

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

Зависимую основную сборку взаимодействия с номером версии, отличающимся от номера версии исходной библиотеки типов, невозможно обнаружить при установке в текущий каталог. Необходимо или зарегистрировать зависимую основную сборку взаимодействия в реестре Windows, или воспользоваться параметром /reference, чтобы программа Tlbimp.exe обнаружила зависимую библиотеку DLL.

Также можно включить несколько версий библиотеки типов. Инструкции см. в разделе Практическое руководство. Включение нескольких версий библиотек типов.

Пример

В приведенном ниже примере выполняется импорт библиотеки типов COM LibUtil.tlb и подписание сборки LibUtil.dll строгим именем с помощью файла ключа CompanyA.snk. Так как имя пространства имен не указано, в этом примере создается пространство имен по умолчанию (LibUtil).

tlbimp LibUtil.tlb /primary /keyfile:CompanyA.snk /out:LibUtil.dll

Чтобы имя было более понятным (соответствовало правилу именования ИмяПоставщика.ИмяБиблиотеки), в приведенном ниже примере переопределяются имена файла сборки и пространства имен, используемые по умолчанию.

tlbimp LibUtil.tlb /primary /keyfile:CompanyA.snk /namespace:CompanyA.LibUtil /out:CompanyA.LibUtil.dll

В приведенном ниже примере выполняется импорт библиотеки MyLib.tlb, которая ссылается на CompanyA.LibUtil.dll, и подписание сборки CompanyB.MyLib.dll строгим именем с помощью файла ключа CompanyB.snk. Пространство имен CompanyB.MyLib переопределяет пространство имен по умолчанию.

tlbimp MyLib.tlb /primary /keyfile:CompanyB.snk /namespace:CompanyB.MyLib /reference:CompanyA.LibUtil.dll /out:CompanyB.MyLib.dll

См. также