0

在其中一个项目中,我正在使用该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 一起工作?

提前致谢!

4

1 回答 1

0

经过研究,这种方法不能加载混合程序集。它们只能是纯 MSIL。

于 2012-10-01T03:17:04.073 回答