无法加载文件或程序集...尝试加载格式不正确的程序(System.BadImageFormatException)

528
我有两个项目,分别为ProjectAProjectB。其中,ProjectB是一个控制台应用程序,依赖于ProjectA。昨天所有一切都还好好的,但今天当我运行ProjectB时,出现了以下错误信息:BadImageFormatException was unhandled:
Could not load file or assembly 'ProjectA, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null' or one of its dependencies. An attempt was made to load a program with an incorrect format。

这两个项目都是普通的.NET项目,没有依赖于任何非.NET项目。它们都是纯粹的.NET项目,没有本地代码或P/Invoke调用。我还有其他依赖于ProjectA的项目,它们仍然能够正常工作。
我已经尝试过以下几种方法:
- 确保两个项目都设置为“Any CPU”,并且勾选了构建复选框。 - 确保两个项目均针对相同的目标框架(.NET 4.0 Client Profile)。 - 在ProjectB --> References --> ProjectA --> Properties中,确保“Copy Local”设置为“True”_(我验证了ProjectA.dll被正确地复制)_ - 清理/重新生成解决方案。我甚至尝试手动删除两个项目中的/bin和/obj文件夹。 - 重启Visual Studio。重启我的电脑。 - 检出存储库的全新副本。
但我仍然收到相同的错误消息。我不知道我做了什么导致了这个问题,也不知道该如何修复。有什么建议吗?

4
如果您在代码库中有版本历史记录,可以检查一下csproj文件是否有差异。 - Steve
1
@Steve:根据Mercurial的记录,除了添加新的.cs文件的引用之外,没有其他更改。 - BlueRaja - Danny Pflughoeft
1
你在另一台机器上是否遇到了相同的问题?机器上是否有其他变化(例如Windows更新、依赖项更新等)? - Mike Parkhill
1
你试过还原那些新的.cs文件了吗? - Mike Parkhill
3
这对我有用…… https://dev59.com/PGox5IYBdhLWcg3wIQ1o#9419522 - Som
显示剩余3条评论
32个回答

-1
在我的情况下,错误是System.BadImageFormatException: Could not load file or assembly 'vjslib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a' or one of its dependencies.

通过从这里安装vjredist 64来解决问题。


-2
我的计算机提示需要进行BIOS更新,我想知道这是否与突然出现的错误有关。更新后,错误被解决了,并且该解决方案成功构建。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接