【问题标题】:Why cant a .net 4.0 project reference a 4.5 assembly?为什么 .net 4.0 项目不能引用 4.5 程序集?
【发布时间】:2014-11-17 12:50:46
【问题描述】:

我正在开发一个针对 .NET 4.0 的项目,现在我需要引用一个针对 .NET 4.5 构建的第三方 dll。似乎视觉工作室不接受?为什么? VS 显示当前上下文中不存在 dll 名称。

【问题讨论】:

    标签: c# .net-4.5


    【解决方案1】:

    因为您引用的是更高版本。微软可以向后兼容,但不能“未来兼容”。您需要将整个项目转换为更高版本,才能使用该二进制文件。

    不知道您到底在说什么技术,但如果是asp.net,请考虑在 vNext 中您可以在服务器上部署您自己的云 clr 版本。所以您可能有 2 个版本的应用,一个针对 4.5,另一个针对 4.0

    Introducing vNext。如果这与您有关,请重复。

    【讨论】:

      【解决方案2】:

      面向 .NET 4.0 的项目可以在 4.0 运行时上运行。面向 .NET 4.5 的 DLL 不能。

      如果允许;您将能够构建看似在 4.0 中工作的项目,但在尝试加载 4.5 组件时会失败。

      您可以参考其他方式;作为 4.0 的 DLL 可以在 4.5 运行时加载。

      您需要向第三方请求 DLL 的 4.0 版本;或目标 .NET 4.5。

      【讨论】:

        【解决方案3】:

        应用程序域将在 4.0 运行时下运行,因此无法引用较新的 dotnet 版本,只有相反的情况。

        4.5 是不同的 .net 运行时,因此无法在旧版本中加载 4.5。

        您必须记住,运行时需要将中间语言 (IL) 解释为机器代码。如果 IL 是在 4.5 上创建的,那么 4.0 运行时将不知道如何解释它。

        【讨论】:

          【解决方案4】:

          在 4.5 中创建一个控制台应用程序,然后从 4.0 执行一个 cmd 以从 4.5 获取您需要的数据,这可能是一个快速的解决方案。不知道,但它可以完成工作:)

          【讨论】:

          • 您可以使用一种 Windows IPC 机制在进程之间进行通信。 (例如,我喜欢IpcServerChannel)。
          猜你喜欢
          • 2023-03-18
          • 1970-01-01
          • 2023-04-11
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2010-12-09
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多