.NET程序集中BadImageFormatException的替代原因?

Phi*_*uss 6 c# c++ dllimport visual-studio-2008 visual-studio

我正在使用C++中的.NET 3.5控制台应用程序,它使用VC++非托管DLL.几个星期前,当我处理它时,它运行没有问题,但我今天回到它,现在得到一个BadImageFormatException("尝试加载一个格式不正确的程序.(HRESULT异常: 0x8007000B)).

我的开发工作站运行64位Windows 7,我使用非托管代码做了相当多的工作,所以我立即检查.NET程序集和VC++库都有x86目标.他们做到了.

可以肯定的是,我清理并重建了VC++库和.NET程序集,但无济于事.

两个系统都没有做任何特别不寻常的事.VC++库加载二进制数据文件并对其内容进行一些数学处理..NET程序集具有库的DllImports和一些用于连接它的代码.几周前这一切都奏效了.

所以现在我想知道BadImageFormatException的其他原因是否比我可能遇到的x86/x64冲突更不常见.

谢谢.

编辑:无论x86或x64模式如何,我都会得到相同的错误,但是当设置为"任何CPU"时,执行将超过该点,但执行将在稍后调用VC++库时中止,没有异常.不管这是否与这个问题有关,是否存在"任何CPU"与x86和x64不同的东西,这可能会对此有所启发?

Meh*_*ari 3

您可能正在尝试在 CLR 2.0 上加载为 CLR 4.0 构建的程序集。