大家在使用EntityFrameworkCore的DBFirst的腳手架(Scaffolding)時應該遇到過Build Failed的錯誤,而沒有任何提示,我也遇到過不少次,目前已經完美解決並將排查方法分享給大家: (1)對於要使用腳手架的項目,首先要確保項目是可以正常編譯運行的,在VisualS ...
大家在使用EntityFrameworkCore的DBFirst的腳手架(Scaffolding)時應該遇到過Build Failed的錯誤,而沒有任何提示,我也遇到過不少次,目前已經完美解決並將排查方法分享給大家:
(1)對於要使用腳手架的項目,首先要確保項目是可以正常編譯運行的,在VisualStudio中Ctrl+Shift+B進行編譯,如果報錯,則要先處理好。
(2)確保引用的EntityFrameWork相關包完整、正確,以下是我使用的版本:
Microsoft.EntityFrameworkCore.Design(2.1.8)
Microsoft.EntityFrameworkCore.Tools(2.1.8)
Microsoft.EntityFrameworkCore.SqlServer(2.1.8)
(3)開啟腳手架命令行運行的錯誤提示,以便我們查找問題:
dotnet ef dbcontext scaffold "連接字元串" Microsoft.EntityFrameworkCore.SqlServer -o Model -c DefaultContext -f -v
命令最後的-v就是打開錯誤提示,命令行運行時如果發現錯誤則會提示
(4)我遇到的錯誤原因:
1、項目之間相互依賴導致的問題,可以試試取消相互之間的引用再運行
2、提示“C# 7.0 中不支持功能“預設文本”。請使用 7.1 或更高的語言版本。”,可能是因為你的解決方案里出現了不同版本的.Net(比如.NetStandard和.NetFramework共同出現在同一個解決方案下)。這時只需要在項目文件中增加配置項即可解決:
<PropertyGroup>
<LangVersion>latest</LangVersion>
</PropertyGroup>
或者在“項目屬性 > 生成 > 高級 > 語言版本”中設置即可