强制FSI (. net 4版本)加载为.net 2.0编译的程序集



我主要使用。net 4.0使用fsi, f#交互,但我有几个我需要访问的dll,这些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 mscorlib n程序集与。net 2.0 FW程序集之间的版本控制。因为整套。net 4.0的版本是不同的,我认为你不能在其中使用。net 2.0。为了测试,你可以有两个不同版本的类库(对它们签名!),并尝试加载它们,因为它们的依赖关系,它根本无法工作。

你应该重新用。net 4.0构建。net 2.0的FW程序集,可以在程序集后面加上"4.0"

最新更新