如何将较高版本的.net库(.dll)与较低版本的二进制文件集成

时间:2010-12-07 13:42:26

标签: .net frameworks external

我有.net框架4编译的外部.net库(它的提供者最近搬到了.net 4) 我的代码目前运行在.net framework 3.5上 如何在我的应用程序中使用该外部库? 将整个应用程序移动到.net 4需要时间和测试,所以也许将来我会这样做,但现在,有什么可能性?

2 个答案:

答案 0 :(得分:4)

没有可能,.NET 3.5附带的CLR版本无法加载4.0程序集。元数据格式已更改。您拥有以强制您的应用使用.NET 4.0 CLR版本。通过使用VS2010(定位4.0)或使用包含<requestedRuntime>元素的.config文件重新编译它来请求“v4.0”来执行此操作。

.NET 4.0的兼容性非常好。

答案 1 :(得分:0)

虽然您无法直接加载.Net DLL,但可以将其包装在COM接口中,并在.Net 3.5进程中加载​​该COM接口。

请参阅Using a .NET 4 Based DLL From a .NET 2 Based Application

有关更多背景信息,Microsoft最初在.Net 4中添加了In-Process Side-by-Side,以更好地支持应用程序通过COM加载加载项的场景,并且加载项是使用各种版本的.Net编写的。在.Net 3.5进程中加载​​.Net 4 DLL的能力只是一个很好的副作用。