【问题标题】:How can I use .net 3.0 class in .net 2.0 project?如何在 .net 2.0 项目中使用 .net 3.0 类?
【发布时间】:2013-08-30 04:11:02
【问题描述】:

我有一个 .NET 2.0 项目(我们称之为项目 A)。我想使用WCF,所以我创建了另一个项目(在 .NET 3.0 中,我们称之为项目 B)我将所有 WCF 逻辑放在其中,所以我在项目 A 中所做的只是从项目 B 的类中调用一些方法。当我添加对项目 B 的引用时,项目 A 看不到它并且我收到警告:

无法解析主要引用“Project B/Some.dll”,因为它间接依赖于无法解析的框架程序集“System.ServiceModel, Version=3.0.0.0, Culture=neutral, PublicKeyToken=XXX”在当前目标框架内解决。 ".NETFramework,Version=v2.0"。

我怎样才能做到这一点?

【问题讨论】:

    标签: c# .net visual-studio .net-2.0 .net-3.0


    【解决方案1】:

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

    【讨论】:

      【解决方案2】:

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

      【讨论】:

      • 已安装。我无法将项目 A 升级到 .NET 3.0(如果可以的话,就不会有这个问题了;))
      • @PeteMorrison 看到 revision history 关于您提交的修改建议的问题。
      【解决方案3】:

      您不能直接这样做,您的项目针对不同版本的 .NET。

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

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

      在您的 2.0 项目中,使用正确的命令行参数将您的 3.0 项目生成为新的 Process。如有必要,请写信至您的 3.0 项目的 StandardOutput 并从您的 2.0 项目中读取。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2018-06-30
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2018-12-08
        相关资源
        最近更新 更多