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

问题描述:

我使用.net framework 4编译的外部.net库(最近它被提供者移动到.net 4) 我的代码当前运行于其上。 net framework 3.5 如何在我的应用程序中使用该外部库? 将整个应用程序移至.net 4需要时间和测试,所以也许将来我会这样做,但现在有什么可能性?如何从较高版本集成.net库(.dll)和较低版本的二进制文件

没有任何可能性,.NET 3.5附带的CLR版本无法加载4.0程序集。元数据格式已更改。您已有强制您的应用程序使用.NET 4.0 CLR版本。通过使用VS2010重新编译它,目标为4.0,或使用包含<requestedRuntime>元素的.config文件来请求“v4.0”。

.NET 4.0的兼容性是优秀的顺便说一句。

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

Using a .NET 4 Based DLL From a .NET 2 Based Application

欲了解更多的背景信息,微软最初加入In-Process Side-by-Side在.NET 4中,以更好地支持方案,其中一个应用程序加载通过COM加载项,并加载项用的各种版本编写的。净。在.NET 3.5进程中加载​​.Net 4 DLL的能力只是一个很好的副作用。