【发布时间】:2011-08-09 16:13:20
【问题描述】:
我主要使用 fsi、F# 交互式使用 .NET 4.0,但我有几个我需要访问的 dll 仅为 .NET 2.0 版本的框架编译(我检查了他们引用的清单mscorlib 版本 2)。
当我尝试使用这些类型时,我遇到了类型加载异常。我假设这是因为在进行动态类型加载等时某些 .NET 2.0/.NET 4.0 不兼容。确切的错误消息是:
System.TypeLoadException: Could not load type 'IMyInterface' from assembly 'MyDll, Version=2.3.17.15, Culture=neutral, PublicKeyToken=null'.
我尝试使用的类型是接口,我不知道这是否重要。使用已编译的等效代码可以正常工作。
这是由于 .NET 2.0/.NET 4.0 不兼容造成的假设是否正确?如果是这样,有什么办法可以解决它?
【问题讨论】:
-
接口的任何成员是否使用在不同的外部程序集中定义的类型?
-
可能是因为 .Net 4.0 和 2.0 使用不同的 IL 代码。
标签: .net f# f#-interactive .net-internals