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

你們在使用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>

或者在「項目屬性 > 生成 > 高級 > 語言版本」中設置便可

相關文章
相關標籤/搜索