更新数据库失败- 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的新添加。
终于找到了答案。
https://stackoverflow.com/a/23666717问题是enable-migrations命令似乎有一个硬编码路径,EF在其中查找项目的构建dll/bin/Debug,不管实际的构建路径是什么。当你改变项目到x64, Visual Studio悄悄地改变你的项目的构建路径到/bin/x64/Debug -而EF继续查找/bin/debug那导致了这个模糊的系统。BadImageFormatException
将项目构建路径更改为/bin/Debug是无害的神奇的是,一切都开始按预期运行了。