我有两个项目,项目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.

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


当前回答

在我的例子中,错误是系统。BadImageFormatException:无法加载文件或程序集'vjslib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a'或其依赖项之一。

从这里安装vjredist 64解决了这个问题。

其他回答

我在使用Visual Studio Build Steps通过Visual Studio Online (VSTS) Build构建一个项目时得到了这个。

解决方案是:

删除已有的源文件夹 在平台中为所有Visual Studio build(包括依赖项)显式地设置“Any CPU”(见下面的截图)。 重新运行构建

我也有同样的问题。我已经将项目A的“平台目标”(“项目A”(右键单击)->属性->构建->“平台目标”)设置为x86,但保持项目B的“任何CPU”。将项目B设置为“x86”修复了这个问题。

我的机器向我显示了BIOS更新,我想知道这是否与突然弹出的这个错误有关。在我进行了更新之后,错误被解决了,解决方案构建得很好。

首先,我在VS2017的一个旧项目中得到了这个,我需要对所有项目做一个微小的改变,并将所有项目升级到框架4.7。


其他一些人提到选择Any CPU可以解决这个问题。

有几个地方需要这样做,可能不只是从下拉菜单中选择那么简单。这为我解决了问题:

1)你需要做到这两点:

2)在配置管理器中(右键单击解决方案)

但如果它不在那里呢?

然后点击新建,选择这些设置:(谢谢@RckLN)

如果您试图在VS.中使用MSI安装程序打包一个64位项目,也可能会遇到这个问题(“原因是。MSI文件打包的本机shim是32位可执行文件”)。

详情请点击这里:http://blogs.msdn.com/b/heaths/archive/2006/02/01/64-bit-managed-custom-actions-with-visual-studio.aspx