Net Core Add-Migration Build failed.最全解決排查方案


Migration 常用命令
  • Add-Migration Init                           --其中Init是你的版本名稱
  • update-database Init                       --更新數據庫操作 init為版本名稱
  • Add-Migration EditPwdLength       --同上,不在解釋
  • update-database EditPwdLength
  • script-migration                               --生成腳本
  • remove-migration                            --刪除最新創建的遷移,add-migration后,還沒有update-database時候可以使用,updata后不可使用

migration數據遷移非常的簡單,大家在學習的時候,如果只有一個項目,實際上遷移是相對非常順利的,坑是當你在生產環境中,項目越來越多,比如微服務有10幾個項目的時候,就會遇到Build failed.的情況;

遇到異常 add-migration Build failed 解決辦法
  1. 檢查項目是否是啟動項(這里有個坑:如果項目使用了DDD,生成要選中Project.Infrastructure,就是我們包含DBContext的類庫,而非Project.API 
  2. 檢查整個解決方案是否可以編譯通過
  3. 上述不行,把其他項目卸載試試
  4. 首先一定要執行dotnet restore 查看網站的依賴關系
  5. 如果生成解決方案出現生成成功,但是編譯跳過N個項目這種也不行,要么排除掉該生產失敗的項目

遇到 “無法將“Add-Migration”項識別為 cmdlet、函數、腳本文件或可運行程序的名稱。請檢查名稱的拼寫,如果包括路徑,請確保路徑正確,然后再試一次。”錯誤的排查思路,說明目前沒有找到Microsoft.EntityFrameworkCore.Tools工具包,可以使用以下2種方案來修復:

方案一:

        執行命令一:Import-Module C:\Users\{用戶名}\.nuget\packages\microsoft.entityframeworkcore.tools\{core版本}\tools\EntityFrameworkCore.psd1
        執行命令二:Get-Verb
 
方案二:
       Install-Package Microsoft.EntityFrameworkCore.Tools  安裝工具包(我喜歡使用這種方案)
 
遇到“Method 'get_Info' in type 'MySql.Data.EntityFrameworkCore.Infraestructure.MySQLOptionsExtension' from assembly 'MySql.Data.EntityFrameworkCore, Version=8.0.18.0, Culture=neutral, PublicKeyToken=c5687fc88969c44d' does not have an implementation.”的解決方案
 
目前是因為MySql.Data.EntityFrameworkCore 8.0.18.0驅動包不支持Net Core3.1版本;使用Pomelo.EntityFrameworkCore.MySql即可


免責聲明!

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



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