为什么.net 4.0项目不能引用4.5程序集?

时间:2014-11-17 12:50:47

标签: c# .net-4.5

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

4 个答案:

答案 0 :(得分:15)

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

不知道您正在谈论的技术究竟是什么,但如果asp.net,请考虑在vNext中您可以在服务器上部署自己的cloud clr版本。因此,可能有两个版本的应用,一个定位4.5,另一个定位4.0

Introducing vNext。重复,如果这涉及到你。

答案 1 :(得分:7)

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

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

你可以参考另一种方式;因为4.0 DLL可以在4.5运行时加载。

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

答案 2 :(得分:2)

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

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

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

答案 3 :(得分:2)

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