你們在使用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>
或者在「項目屬性 > 生成 > 高級 > 語言版本」中設置便可