EF Core 添加迁移构建失败

Posted

技术标签:

【中文标题】EF Core 添加迁移构建失败【英文标题】:EF Core add-migration Build Failed 【发布时间】:2017-11-30 19:37:42 【问题描述】:

我有一个开发人员收到“构建失败”。在 .NET Core EF 项目中运行 add-migration 时,没有解释构建失败的原因。您如何解决此错误?

这是他在包管理器控制台中得到的:

其他信息

我们有一些其他开发人员使用相同的解决方案代码(包括我自己),但添加迁移没有问题。

这是我在包管理器控制台中看到的:

我们已验证项目已构建,并且整个解决方案均已构建。除了重新启动 VS2015 之外,我们已经完成了“dotnet restore”并多次重建。我们已验证在解决方案资源管理器和包管理器控制台下拉菜单中选择了正确的默认解决方案。我们已经验证他的机器上安装了正确的 SDK。我不知道接下来要检查什么......每当我在添加迁移过程中遇到失败时,我已经获得了足够的信息来指导我检查的方向,但只是“构建失败。 "是一个相当无用的错误输出。

【问题讨论】:

您应该尝试使用 -v 选项,看看您是否获得有关错误的更多详细信息。 当我在一台机器上遇到构建错误时,我开始删除个人解决方案文件 (.suo)。之后您需要重置启动项目。 我们使用了 -v 选项,我们没有得到关于错误的更多细节。 删除 .suo 文件并没有改变任何东西。 执行“dotnet build”命令并查看有关错误的更多详细信息。 【参考方案1】:

在我的情况下,添加包 Microsoft.EntityFrameworkCore.Tools 修复问题

【讨论】:

【参考方案2】:

就我而言,我遇到了几个这样的错误:

The process cannot access the file 'C:\xxx\bin\Debug\netcoreapp3.1\yyy.dll' 
because it is being used by another process. [C:\zzz.csproj]

我只有在添加 -v 参数后才能看到这些错误。

解决方案是关闭 Visual Studio 并再次运行命令。

【讨论】:

感谢“-v”开关。这有帮助! Microsoft 设计的这种设计不佳的手动 EF 解决方案意味着一百万件事情可能会出错,从而阻止构建“迁移”垃圾文件。就我而言,它不喜欢我在 Main 方法中执行的一些自定义日志记录。谁知道!您的 -v 或详细信息使我可以查看所有错误并进行跟踪。否则微软的这个烂摊子会吃掉我半天的时间:)【参考方案3】:

就我而言,重建 项目 工作正常。运行项目也很好,执行一些端点也很有效。

但仍然在 update-database 上它会说“构建失败”而没有任何说明,即使在命令中添加了 -Verbose。

最后,单元测试项目中发生了一个错误,该错误会(由于某种原因)导致“构建失败”错误。

由于我在同一个解决方案下有多个项目,我将重建我目前正在处理的项目。看来,当发生此错误时,最好重建整个 Solution 并解决错误...

【讨论】:

【参考方案4】:

只有清除 Visual Studio 缓存对我有帮助

    关闭 Visual Studio(确保任务管理器中不存在 devenv.exe) 删除 %USERPROFILE%\AppData\Local\Microsoft\VisualStudio\16.0\ComponentModelCache 目录。 重新启动 Visual Studio。您可能还需要清理用户的临时文件夹。它通常位于 %USERPROFILE%\AppData\Local\Temp 下。

【讨论】:

【参考方案5】:

我遇到了同样的问题。如果您选择了 .NET Core 工具收集使用数据以改进 Windows,那么您可以使用 dotnet build 来解决缺失/持续存在的问题。

【讨论】:

【参考方案6】:

在我的情况下,丢失的是声纳库依赖项。当我在 Rider 中构建项目时,它成功但在从终端触发构建(dotnet build)时失败。这是由 Rider 中的错误设置引起的。解决方案是在终端触发声纳扫描。

【讨论】:

以上是关于EF Core 添加迁移构建失败的主要内容,如果未能解决你的问题,请参考以下文章

添加迁移EF Core时出现奇怪错误

添加迁移时,IdentityServer DB 上的 EF Core 迁移适用于 MULTIPLE 表而不是仅 AspNetUsers 表

EF Core 迁移从其他上下文添加表

EF Core 5 在迁移中创建了两次表

使用容器编排处理 EF Core 迁移

EF Core ASP.Net Core 编辑迁移