我有.net框架4编译的外部.net库(它的提供者最近搬到了.net 4) 我的代码目前运行在.net framework 3.5上 如何在我的应用程序中使用该外部库? 将整个应用程序移动到.net 4需要时间和测试,所以也许将来我会这样做,但现在,有什么可能性?
答案 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的能力只是一个很好的副作用。