У меня есть приложение 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! Неужели нет способа создать сборку взаимодействия из управляемого кода?
Есть предложения?