【发布时间】:2014-11-17 12:50:46
【问题描述】:
我正在开发一个针对 .NET 4.0 的项目,现在我需要引用一个针对 .NET 4.5 构建的第三方 dll。似乎视觉工作室不接受?为什么? VS 显示当前上下文中不存在 dll 名称。
【问题讨论】:
我正在开发一个针对 .NET 4.0 的项目,现在我需要引用一个针对 .NET 4.5 构建的第三方 dll。似乎视觉工作室不接受?为什么? VS 显示当前上下文中不存在 dll 名称。
【问题讨论】:
因为您引用的是更高版本。微软可以向后兼容,但不能“未来兼容”。您需要将整个项目转换为更高版本,才能使用该二进制文件。
不知道您到底在说什么技术,但如果是asp.net,请考虑在 vNext 中您可以在服务器上部署您自己的云 clr 版本。所以您可能有 2 个版本的应用,一个针对 4.5,另一个针对 4.0。
Introducing vNext。如果这与您有关,请重复。
【讨论】:
面向 .NET 4.0 的项目可以在 4.0 运行时上运行。面向 .NET 4.5 的 DLL 不能。
如果允许;您将能够构建看似在 4.0 中工作的项目,但在尝试加载 4.5 组件时会失败。
您可以参考其他方式;作为 4.0 的 DLL 可以在 4.5 运行时加载。
您需要向第三方请求 DLL 的 4.0 版本;或目标 .NET 4.5。
【讨论】:
应用程序域将在 4.0 运行时下运行,因此无法引用较新的 dotnet 版本,只有相反的情况。
4.5 是不同的 .net 运行时,因此无法在旧版本中加载 4.5。
您必须记住,运行时需要将中间语言 (IL) 解释为机器代码。如果 IL 是在 4.5 上创建的,那么 4.0 运行时将不知道如何解释它。
【讨论】:
在 4.5 中创建一个控制台应用程序,然后从 4.0 执行一个 cmd 以从 4.5 获取您需要的数据,这可能是一个快速的解决方案。不知道,但它可以完成工作:)
【讨论】:
IpcServerChannel)。