我们有一个开发人员团队致力于Asp.Net MVC5解决方案,并且经常在执行git pull
以获得其他开发人员更改后,我们需要使用任何新的数据库迁移(实体框架6.1)更新我们的本地数据库.3)已添加。
我们在Package Manager Console中运行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,Original MSDN article
但是这篇文章适用于EF5。这仍然是这样吗?有解决方法吗?如果不是它看起来很奇怪,它不像x64或EF是Visual Studio的新增功能。
答案 0 :(得分:2)
管理找到答案。
问题是enable-migrations命令似乎有一个 EF寻找项目内置DLL的硬编码路径 / bin / Debug,无论实际的构建路径是什么。当你改变一个 Project to x64,Visual Studio悄然改变了你的项目构建 路径到/ bin / x64 / Debug - 当EF继续查看/ bin / Debug时。那 导致这种模糊的System.BadImageFormatException
将Project构建路径更改为/ bin / Debug并且无害 奇迹般地,一切都开始像它应该的那样工作。