如何在.NET 2项目中使用.NET 4.7程序集?

时间:2019-07-16 08:30:06

标签: c# .net

我想引用在Visual Studio的.NET 2.0项目中以.NET 4.7编写的程序集。我知道以前对我的问题(here)有实际的解决方案,但是老实说,我不太了解(我什至在CodeProject中阅读了解决方案)。我什至将程序集导出为COM(使用tlbexp.exe),每当我想导入该程序集(使用tlbimp.exe)或添加引用时,我都收到一条错误消息,说我无法使用从.NET导出的程序集。部件。有人可以从头开始指导我吗?当我进入COM编程时,我几乎迷路了。

1 个答案:

答案 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,并且可以正常工作。

注意:

  • 按照下面的TheGeneral's点,您可能需要确保在客户端计算机和.NET 4.7上都安装了.NET 2 CLR。​​