1.
問題:
首次在ASP.NET Core項目中使用Code First模式的Entity Framework框架,在添加EF工具並做初始化遷移(perform initial migration),執行Add-Migration Initial遇到以下錯誤:
PM> Add-Migration Initial
Add-Migration : 無法將“Add-Migration”項識別為 cmdlet、函數、腳本文件或可運行程序的名稱。請檢查名稱的拼寫,如果包括路徑,請確保路徑正確,然后再試一次。
所在位置 行:1 字符: 1
+ Add-Migration Initial
+ ~~~~~~~~~~~~~
+ CategoryInfo : ObjectNotFound: (Add-Migration:String) [], CommandNotFoundException
+ FullyQualifiedErrorId : CommandNotFoundException
網上關於此問題,有其他環境下的解決方案,其思路具有參考意義,但環境不同解決細節也不同。
參考鏈接如下:
http://www.cnblogs.com/pari-Zhong/p/5339028.html
在本人這個環境下,對PowerShell的ExecutionPolicy也是執行了設置了的。之后的細節如下:
1、 編譯項目。首次在項目中添加EF Core后,這一步必須做,否則都找不到后續要導入的 EntityFrameworkCore.psd1 模塊。
2、找到前述文件的位置,使用Import-Module命令導入。我這里為: Import-Module C:\Users\{用戶名}\.nuget\packages\microsoft.entityframeworkcore.tools\1.1.1\tools\EntityFrameworkCore.psd1
執行信息如下:
PM> Import-Module C:\Users\*\.nuget\packages\microsoft.entityframeworkcore.tools\1.1.1\tools\EntityFrameworkCore.psd1
模塊“EntityFrameworkCore”中的某些導入命令的名稱包含未批准的動詞,這些動詞可能導致這些命令名不易被發現。若要查找具有未批准的動詞的命令,請使用 Verbose 參數再次運行 Import-Module 命令。有關批准的動詞列表,請鍵入 Get-Verb。
之后問題解決,執行Add-Migration Initial ,Update-Database這些命令都正常了。
2.如果執行1操作后還是Build failed,就看看是否Visual Studio中Build failed,因為我這里沒有用到docker,所以我這里卸載項目就正常了