将 Target Framework 更改为 .net framework 4 后出现运行时异常: 类型为“System.BadImageFormatException”的第一次机会异常发生在
使用目标框架 3.5 构建时,一切正常。
我正在构建的平台是 x86(我发现构建到 x64 晚上会导致问题)。
可能是什么问题?
最佳答案
MSDN列出了可能的原因,因此我建议将其作为 list 运行:
尝试加载非托管动态链接库或可执行文件(例如 Windows 系统 DLL),就好像它是 .NET Framework 程序集一样。
DLL 或可执行文件作为 64 位程序集加载,但它包含 32 位功能或资源。例如,它依赖于 COM 互操作或调用 32 位动态链接库中的方法。
- 组件是使用不同版本的 .NET Framework 创建的。通常,当使用 .NET Framework 1.0 或 .NET Framework 1.1 开发的应用程序或组件尝试加载使用 .NET Framework 2.0 SP1 或更高版本开发的程序集时,或者当开发的应用程序使用 .NET Framework 2.0 SP1 或 .NET Framework 3.5 尝试加载使用 .NET Framework 4 开发的程序集。BadImageFormatException 可能会报告为编译时错误,或者可能会在运行时引发异常。
这个想法是为了确保你的所有项目和依赖项都被编译为针对相同的框架版本,或者是以前的版本;并且您的每个项目在二进制方面都是兼容的;如果您动态加载库,请确保加载它们的属性(即不要尝试将 native 库作为托管程序集加载。)
也许添加更多关于您项目的配置/依赖项的信息将使我们更加果断。
关于c# - 目标框架为 4.0 时出现 System.BadImageFormatException,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7319636/