在我工作的其中一个项目中,代码使用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?
提前致谢!
答案 0 :(得分:0)
经过研究,此方法无法加载混合组件。它们只能是纯MSIL。