C#Assembly.LoadFrom抛出BadImageFormatException

时间:2012-09-29 03:19:16

标签: visual-studio-2010 c#-4.0 visual-c++ clr badimageformatexception

在我工作的其中一个项目中,代码使用Assembly.LoadFrom函数将.net DLL动态加载到完全受信任的程序集中。到目前为止,这一直在100%没有问题。

我现在有一个使用/ clr:pure编译的Visual C ++ DLL,需要使用上面的Assembly.LoadFrom加载。当我这样做时,我得到了BadImageFormatException,这真的很奇怪。

在Visual C ++项目中,有3种类型的CLR编译选项:

/ CLR

/ CLR:纯

/ CLR:安全

根据给我的说明,它需要在/ clr:pure下编译。我的问题是使用/ clr:pure抛出异常。如果我将其更改为/ clr,它也会抛出异常。如果我将它更改为/ clr:safe,它会加载而不会抛出异常(这是我测试结束的地方)。

所以我想这实际上是一个两部分问题:

1)为什么/ clr:安全工作而不是其他两个?

2)如何使用/ clr?

提前致谢!

1 个答案:

答案 0 :(得分:0)

经过研究,此方法无法加载混合组件。它们只能是纯MSIL。