我正在开发一个针对.NET 4.0的项目,现在我需要引用一个针对.NET 4.5构建的第三方dll。似乎visual studio不接受这个?为什么? VS告诉我当前上下文中不存在dll名称。
答案 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获取所需的数据,这可能是一个快速的解决方案。不知道,但它做的工作:)