EFCore-腳手架Scaffold發生Build Failed問題的終極解決


大家在使用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>

或者在“項目屬性 > 生成 > 高級 > 語言版本”中設置即可


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM