在其中一个项目中,我正在使用该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:safe 可以工作,而其他两个不行?
2) 如何让它与 /clr 一起工作?
提前致谢!