【问题标题】:Update-database failing - BadImageFormatException更新数据库失败 - BadImageFormatException
【发布时间】:2023-03-09 06:51:01
【问题描述】:

我们有一个开发人员团队正在开发 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,Original MSDN article.

但是这篇文章是针对 EF5 的。现在还是这样吗?有没有解决方法?如果不是,它看起来很奇怪,它不像 x64 或 EF 是 Visual Studio 的新增功能。

【问题讨论】:

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


    【解决方案1】:

    设法找到答案。

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

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

    https://stackoverflow.com/a/23666717

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2015-05-29
      • 1970-01-01
      • 1970-01-01
      • 2022-11-01
      • 1970-01-01
      • 2019-01-07
      • 2021-05-25
      • 1970-01-01
      相关资源
      最近更新 更多