如何在.net 2.0项目中使用.net 3.0类?

问题描述:

我在.NET 2.0中有一个项目(我们称之为项目A)。我想使用WCF,所以我创建了另一个项目(在.NET 3.0中,我们称之为项目B),在这里我放置了所有WCF逻辑,因此我在项目A中所做的全部工作都是从项目B的类中调用某个方法。添加引用项目B,项目A没有看到它,我获得警告:如何在.net 2.0项目中使用.net 3.0类?

主要参考“项目B/Some.dll”无法得到解决,因为它的框架组件的间接依赖“系统.ServiceModel,Version = 3.0.0.0,Culture = neutral,PublicKeyToken = XXX“,这在当前目标框架中无法解决。 ” .NETFramework,版本= V2.0" 。

我该如何做这项工作?

是的,这是完全可能的。您只需将在3.0中编写的组件公开为COM对象。 2.0宿主应用程序只是将它们用作COM对象,并不知​​道它们是本机,2.0,3.0还是其他。 COM是两个运行时版本必须实现相同的通用接口。

要使用WCF(在运行时),无论如何都需要安装.NET 3(或更好的3.5)。因此,将ProjectA更改为目标3(或3.5)。

+1

已安装。我无法将项目A升级到.NET 3.0(如果我可以在那里不会有这个问题;)) –

+0

@PeteMorrison在一个问题上看到[修订历史](http://*.com/posts/22246916/revisions)你已经提交了一个建议的编辑。 – 2014-03-07 10:39:27

您不能直接执行此操作,您的项目将针对不同版本的.NET。

你可以做的是在两个进程之间进行通信。

使您的3.0项目成为可执行文件,并允许它接受调用您想要使用的方法的命令行参数。

在您的2.0项目中,使用正确的命令行参数产生您的3.0项目作为新的Process。如有必要,写入您的3.0项目的StandardOutput并从您的2.0项目中读取它。