从C ++托管的dll抛出的C#exception – EEFileLoadException * __ptr64

我从正常的C#控制台程序中得到此错误,该程序正在使用作为C ++ CLI项目的构建输出生成的DLL。 我有一个简单的DumbThing public ref class与静态方法。 我想简单地调用该函数或至少实例化一个微小的DumbThing对象,并看到C#可以调用它从C ++ CLI生成的DLL中获取的代码,但是它没有工作,因为它抛出的错误让我更加困惑:

 First-chance exception at 0x000007fefd2acacd (KernelBase.dll) in DumbTest.exe: Microsoft C++ exception: EEFileLoadException * __ptr64 at memory location 0x007fc228.. 

更新:在原始exception之下,还有另一个第一次机会exception:

 First-chance exception at 0x77cace3b (ntdll.dll) in DumbTest.exe: 0xC0000005: Access violation reading location 0xffffffffffffffff. 

一位同事向我指出,这可能是一个编译时问题(一些选项),但我没有任何可能导致它的线索。 有谁可以提供一些起点提示?

这可能是一个小问题。 如果您为特定平台编译了C ++ / CLI项目,请确保您的C#项目已相应地设置其平台。 C#projects的默认值是“Any CPU”,它导致JIT编译器在64位体系结构上生成x64代码。 如果您的C ++ / CLI项目是为x86构建的,则无法将其加载到64位计算机上的x64进程中。