Я разрабатываю сервер DCOM в .NET 4 (VS2010, C #). Само по себе это работает нормально.
Теперь мне также нужно разработать .NET-клиент для этого DCOM-сервера, но я не могу добавить ссылку на TypeLib. Visual Studio сообщит мне, что библиотека типов была экспортирована из сборки .NET и не может быть добавлена в качестве ссылки.
Ответы на этот вопрос говорят о том, что Я мог бы использовать TlbImp.exe
для создания сборки оболочки, но она тоже откажется от этого:
TlbImp: ошибка TI1029: Библиотека типов MyWrapper была экспортирована из сборки CLR и не может быть повторно импортирована как сборка CLR.
Я понимаю, что с чисто .NET точки зрения использование DCOM для этого может не иметь большого смысла. Однако тот же сервер также должен быть доступен из приложений, отличных от .NET.
Я попытался преобразовать свой tlb в IDL и восстановить из него tlb, но это не обманывает Visual Studio.
Возможно, можно немного изменить IDL перед регенерацией, или есть способ принудительно использовать DCOM, даже если и сервер, и клиент написаны на .NET?