更新数据库失败- BadImageFormatException

本文关键字:BadImageFormatException 失败 数据库 更新 | 更新日期: 2023-09-27 18:03:36

我们有一个开发团队正在开发一个Asp。Net MVC5解决方案,并且经常在做git pull以获得其他开发人员的更改后,我们需要使用已添加的任何新的数据库迁移(实体框架6.1.3)更新我们的本地数据库。

我们在包管理器控制台中运行update-database来更新数据库。在我们将所有项目更改为编译x64输出之前,这种方法一直有效。这是解决内存需求所需的。

但是现在我得到:

System.BadImageFormatException: Could not load file or assembly 'My.Data' or one of its dependencies. 
    An attempt was made to load a program with an incorrect format.

当我运行Update-database。在重新编译之前,我已经清理了所有bin和obj文件夹(以确保所有输出都是相同的x64格式)。

看起来问题可能是migrate.exe与x64不兼容。SO, MSDN原创文章。

然而,这篇文章是为EF5。现在还是这样吗?有解决办法吗?如果不是的话,它看起来很奇怪,这并不是说x64或EF是Visual studio的新添加。

更新数据库失败- BadImageFormatException

终于找到了答案。

问题是enable-migrations命令似乎有一个硬编码路径,EF在其中查找项目的构建dll/bin/Debug,不管实际的构建路径是什么。当你改变项目到x64, Visual Studio悄悄地改变你的项目的构建路径到/bin/x64/Debug -而EF继续查找/bin/debug那导致了这个模糊的系统。BadImageFormatException

将项目构建路径更改为/bin/Debug是无害的神奇的是,一切都开始按预期运行了。

https://stackoverflow.com/a/23666717