更新数据库失败 - BadImageFormatException

时间:2016-08-22 11:06:06

标签: c# asp.net entity-framework visual-studio entity-framework-6

我们有一个开发人员团队致力于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不兼容。 SOOriginal MSDN article

但是这篇文章适用于EF5。这仍然是这样吗?有解决方法吗?如果不是它看起来很奇怪,它不像x64或EF是Visual Studio的新增功能。

1 个答案:

答案 0 :(得分:2)

管理找到答案。

  

问题是enable-migrations命令似乎有一个   EF寻找项目内置DLL的硬编码路径   / bin / Debug,无论实际的构建路径是什么。当你改变一个   Project to x64,Visual Studio悄然改变了你的项目构建   路径到/ bin / x64 / Debug - 当EF继续查看/ bin / Debug时。那   导致这种模糊的System.BadImageFormatException

     

将Project构建路径更改为/ bin / Debug并且无害   奇迹般地,一切都开始像它应该的那样工作。

https://stackoverflow.com/a/23666717