我正在.NET 4(VS2010,C#)中开发一个 DCOM 服务器。就其本身而言,这工作正常。
现在,我还需要为这个 DCOM 服务器开发一个 .NET 客户端,但我无法添加对 TypeLib 的引用。Visual Studio 会告诉我类型库是从 .NET 程序集中导出的,不能作为参考添加。
这个问题的答案表明我应该能够用来TlbImp.exe
生成包装程序集,但它也会拒绝这样做:
TlbImp:错误 TI1029:类型库“MyWrapper”是从 CLR 程序集导出的,不能作为 CLR 程序集重新导入。
我知道从纯粹的 .NET 角度来看,为此使用 DCOM 可能没有多大意义。但是,非 .NET 应用程序也应该可以访问同一服务器。
我尝试将我的 tlb 转换为 IDL 并从中重新生成 tlb,但这并不能欺骗 Visual Studio。
也许可以在重新生成之前稍微修改 IDL,或者有什么方法可以强制使用 DCOM,即使服务器和客户端都是用 .NET 编写的?