你们在使用EntityFrameworkCore的DBFirst的脚手架(Scaffolding)时应该遇到过Build Failed的错误,而没有任何提示,我也遇到过很多次,目前已经完美解决并将排查方法分享给你们:ui
(1)对于要使用脚手架的项目,首先要确保项目是能够正常编译运行的,在VisualStudio中Ctrl+Shift+B进行编译,若是报错,则要先处理好。spa
(2)确保引用的EntityFrameWork相关包完整、正确,如下是我使用的版本:命令行
Microsoft.EntityFrameworkCore.Design(2.1.8)字符串
Microsoft.EntityFrameworkCore.Tools(2.1.8)it
Microsoft.EntityFrameworkCore.SqlServer(2.1.8)io
(3)开启脚手架命令行运行的错误提示,以便咱们查找问题:编译
dotnet ef dbcontext scaffold "链接字符串" Microsoft.EntityFrameworkCore.SqlServer -o Model -c DefaultContext -f -vtest
命令最后的-v就是打开错误提示,命令行运行时若是发现错误则会提示配置
(4)我遇到的错误缘由:引用
一、项目之间相互依赖致使的问题,能够试试取消相互之间的引用再运行
二、提示“C# 7.0 中不支持功能“默认文本”。请使用 7.1 或更高的语言版本。”,多是由于你的解决方案里出现了不一样版本的.Net(好比.NetStandard和.NetFramework共同出如今同一个解决方案下)。这时只须要在项目文件中增长配置项便可解决:
<PropertyGroup>
<LangVersion>latest</LangVersion>
</PropertyGroup>
或者在“项目属性 > 生成 > 高级 > 语言版本”中设置便可