我想引用在Visual Studio的.NET 2.0项目中以.NET 4.7编写的程序集。我知道以前对我的问题(here)有实际的解决方案,但是老实说,我不太了解(我什至在CodeProject中阅读了解决方案)。我什至将程序集导出为COM(使用tlbexp.exe),每当我想导入该程序集(使用tlbimp.exe)或添加引用时,我都收到一条错误消息,说我无法使用从.NET导出的程序集。部件。有人可以从头开始指导我吗?当我进入COM编程时,我几乎迷路了。
答案 0 :(得分:1)
我唯一看到的方法是将程序集针对.NET 4.7编译,并使用COM可见类型,并将其托管在单独的 host .exe中(这样可以使 out-进程 COM服务器)。您需要阅读有关如何在.NET中创建OoP COM服务器的内容。
您的.NET 2客户端.exe然后可以引用由主机注册的COM类型。就.NET而言,它正在与COM通信。它是.NET 4.7的事实是偶然的。
您将最终获得两个进程,这些进程通过COM“线路”相互通信。 COM是二进制协议,并且与语言无关。
我什至将程序集导出为COM(使用tlbexp.exe),每当我想导入该程序集(使用tlbimp.exe)或添加引用时,我都收到一条错误消息,说我不能使用从.NET程序集。
由于将.NET 2进程与4.7类型(进程内COM)混合在一起,您将无法做到这一点。这就是我们进行流程外的原因。
请记住,您的.NET客户端必须添加 COM引用,而不是 .NET 程序集引用。将所有内容都视为COM,并且可以正常工作。
注意: