Как использовать отдельно развернутую сборку .NET в COM-приложении - PullRequest
0 голосов
/ 30 августа 2018

У меня есть приложение A , которое зависит от другого приложения B . B развернут с A, если более новая версия B не существует. A реализован на C ++ и C # (с использованием ATL / COM), а B реализован на C # (COM виден и зарегистрирован при развертывании).

Я создаю библиотеку типов (.tlb) из B на встроенной и импортирую ее в собственные библиотеки A. Таким образом, мы можем использовать B на нативных частях A. Это работает, как и ожидалось.

Однако я не нашел хорошего способа использовать B непосредственно в управляемых разделах A. Я думал, что мог бы сгенерировать interop-сборку из библиотеки типов, но tlbimp это не разрешает, так как

Библиотека типов 'xxx' была экспортирована из сборки CLR и не может быть повторно импортирована как сборка CLR.

Это ограничение не имеет для меня никакого смысла. Я мог бы обойти эту проблему, создав собственную оболочку COM для B или отделив все интерфейсы B от другой сборки, которая будет развернута с помощью A (и использована для генерации tlb), но ... oooon! Неужели нет способа создать сборку взаимодействия из управляемого кода?

Есть предложения?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...