【问题标题】:Making a call to a .NET 4 library from 3.5从 3.5 调用 .NET 4 库
【发布时间】:2011-02-15 05:46:12
【问题描述】:

我需要调用 .NET 4.0 中的 System.Xaml 库。如果您的项目针对 3.5,是否可以调用此库?

【问题讨论】:

标签: .net .net-3.5 .net-4.0


【解决方案1】:

没有。您需要将项目定位为在 .NET 4 中运行,并使用 CLR v4,才能使用 .NET 4 程序集。


另一方面,这里没有真正的优势。只需将您的应用程序更改为以 .NET 4 为目标。如果您要添加对 .NET 4 框架程序集的依赖项,您不妨一开始就以 .NET 4 为目标...

【讨论】:

  • 问题是,目前我只有 VS2008,我需要 .net 4.0 中的 Xaml(序列化)的特定功能。我希望能够通过反射或其他方式加载它。
  • 你很快就能掌握VS2010。重新调整项目的顺序。
  • @mrwayne:你总是可以使用 VS 2010 Express(现在可用):microsoft.com/express
  • 是的,不幸的是它比这更复杂一些,我在一个需要整个开发团队升级的工作场所,这意味着软件需要进行向后兼容性测试以迁移到 .净 4 等。
  • @mrwayne:如果您在这种类型的环境中工作,请添加一个 dep.在 .NET 4 上也可能不是一个好主意。我会等到贵公司完全迁移到 .NET 4。
【解决方案2】:

这是一种Rube Goldberg-esque 解决方案,它涉及将您的 .NET 4 DLL 方法包装在 COM 中,然后从 .NET 3.5 调用该 COM 包装器:

https://www.codeproject.com/Articles/204406/How-To-Use-a-NET-Based-DLL-From-NET-Based-Appl

【讨论】:

    【解决方案3】:

    不,你不能以不同的方式映射程序集,你可以做的一件事是在内存中创建一个类型来重新组装你的 net 4.0 dll。

    您可以使用 CECIL 获取 IL 指令。

    如果你不太了解 IL,就不要尝试去做。

    【讨论】:

      【解决方案4】:

      这个问题类似于“如何在 .NET 1.x 应用程序中使用 .NET 2 程序集”。不可能将新 CLR 的程序集添加为参考,但正如 Hamish 指出的那样,进程间通信可能会有所帮助。

      【讨论】:

        猜你喜欢
        • 2011-08-04
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2016-03-25
        • 1970-01-01
        • 1970-01-01
        • 2011-01-30
        • 2010-10-19
        相关资源
        最近更新 更多