我有两个项目,项目a和项目b。projecb是一个控制台应用程序,它依赖于ProjectA。昨天,一切都很好,但今天突然当我运行ProjectB时,我得到了这个:

BadImageFormatException未处理: 无法加载文件或程序集“ProjectA, Version=1.0.0.0, Culture=中性,PublicKeyToken=null”或其依赖项之一。试图加载格式不正确的程序。

两者都只是常规项目,不依赖于任何其他非。网络项目。两者都是完全的。net -没有本机代码,也没有P/Invoke。我有其他项目依赖于ProjectA,仍然工作得很好。

我尝试过的事情:

Make sure both projects are set to "Any CPU," with the build checkbox checked. They are. Make sure both projects are for the same Target Framework (.Net 4.0 Client Profile). Under ProjectB --> References --> ProjectA --> Properties, make sure "Copy Local" is set to "True" _ (I verified that ProjectA.dll is being copied correctly) Clean/Rebuild the solution. I even tried manually deleting the /bin and /obj folders in both projects. Restart Visual Studio. Restart my computer. Check out an entirely new copy of the repository.

但还是得到相同的错误。我不知道我做了什么导致了这一切,也不知道该怎么补救。什么好主意吗?


当前回答

在我的c#项目中,项目属性->[构建]->平台目标:任何CPU, 并取消选择首选32位,让编译器自动选择。

其他回答

如果你的项目中至少有1个32位dll\exe,你可能需要在IIS7中将应用程序池设置“启用32位应用程序”更改为TRUE。

我在一个项目中也遇到过这个问题,几分钟后我找到了解决方案, 这个问题是由于CPU配置, 如果你使用的是Visual Studio 2010或VS 2013,只要转到项目的属性,然后从侧边栏选择Compile,就会有5个下拉菜单,第5个下拉菜单将是Target CPU:,你应该根据你的要求将它设置为x86或x64,而不是任意CPU。

我的问题在更改为x86之后就解决了。

如果你像我一样通过cli .net集成从你的程序中使用LibreOffice,我也会得到同样的错误。我在PC上的生产环境中使用了旧版本的LibreOffice,我安装了一个冲突的新版本。卸载LibreOffice即可。我在这里找到了解决方案。net CLI:无法加载文件或程序集“cli_cppuhelper”

我发现了一些不同于其他答案的东西。在我的项目中出现这个异常是错误编译的结果。没有做任何改变,只是强制重建,它被修复了。

我在Visual Studio 2017上使用ReSharper运行单元测试时也遇到了这个问题,并通过以下配置修复了它:

你也可以改变ReSharper的运行测试设置: https://resharper-support.jetbrains.com/hc/en-us/articles/207242715-How-to-run-MSTest-tests-using-x64-configuration