2016-07-03 44 views
20

我使用此MSDN Tutorial在VS2015中運行的命令PM> Add-Migration MyFirstMigration -context BloggingContext昨天成功運行,但今天它給出了以下錯誤,其他用戶也指出here。我甚至從解決方案資源管理器中刪除了Migrations文件夾,並從SQL Express 2014 on Win 8.1中刪除了相應的db,但是發生了相同的錯誤。即使我跑Add-Migration MyFirstMigration我得到同樣的錯誤:術語「添加遷移」不被識別

Add-Migration : The term 'Add-Migration' is not recognized as the name of a cmdlet, function, script file, or operable program. 
Check the spelling of the name, or if a path was included, verify that the path is correct and try again. 
At line:1 char:1 
+ Add-Migration MyFirstMigration -context BloggingContext 
+ ~~~~~~~~~~~~~ 
    + CategoryInfo   : ObjectNotFound: (Add-Migration:String) [], CommandNotFoundException 
    + FullyQualifiedErrorId : CommandNotFoundException 

注意:我使用ASP.NET 1.0核心的最新版本,VS2015 - 6月27日發佈的更新3,2016年

UPDATE

以下命令使用命令窗口時正常工作從Windows資源管理器項目目錄:

> dotnet ef migrations add MyFirstMigration --context BloggingContext 
> dotnet ef database update --context BloggingContext 

UPDATE 2A

以下是project.json文件:

{ 
    "userSecretsId": "aspnet-ASPCore_RTM_CodeFirst_test-bef835d9-9831-41a8-bc3a-cd2f1477a880", 

    "dependencies": { 
    "Microsoft.NETCore.App": { 
     "version": "1.0.0", 
     "type": "platform" 
    }, 
    "Microsoft.AspNetCore.Authentication.Cookies": "1.0.0", 
    "Microsoft.AspNetCore.Diagnostics": "1.0.0", 
    "Microsoft.AspNetCore.Diagnostics.EntityFrameworkCore": "1.0.0", 
    "Microsoft.AspNetCore.Identity.EntityFrameworkCore": "1.0.0", 
    "Microsoft.AspNetCore.Mvc": "1.0.0", 
    "Microsoft.AspNetCore.Razor.Tools": { 
     "version": "1.0.0-preview2-final", 
     "type": "build" 
    }, 
    "Microsoft.AspNetCore.Server.IISIntegration": "1.0.0", 
    "Microsoft.AspNetCore.Server.Kestrel": "1.0.0", 
    "Microsoft.AspNetCore.StaticFiles": "1.0.0", 
    "Microsoft.EntityFrameworkCore.SqlServer": "1.0.0", 
    "Microsoft.EntityFrameworkCore.SqlServer.Design": { 
     "version": "1.0.0", 
     "type": "build" 
    }, 
    "Microsoft.EntityFrameworkCore.Tools": "1.0.0-preview2-final", 
    "Microsoft.Extensions.Configuration.EnvironmentVariables": "1.0.0", 
    "Microsoft.Extensions.Configuration.Json": "1.0.0", 
    "Microsoft.Extensions.Configuration.UserSecrets": "1.0.0", 
    "Microsoft.Extensions.Logging": "1.0.0", 
    "Microsoft.Extensions.Logging.Console": "1.0.0", 
    "Microsoft.Extensions.Logging.Debug": "1.0.0", 
    "Microsoft.Extensions.Options.ConfigurationExtensions": "1.0.0", 
    "Microsoft.VisualStudio.Web.BrowserLink.Loader": "14.0.0", 
    "Microsoft.VisualStudio.Web.CodeGeneration.Tools": { 
     "version": "1.0.0-preview2-final", 
     "type": "build" 
    }, 
    "Microsoft.VisualStudio.Web.CodeGenerators.Mvc": { 
     "version": "1.0.0-preview2-final", 
     "type": "build" 
    } 
    }, 

    "tools": { 
    "BundlerMinifier.Core": "2.0.238", 
    "Microsoft.AspNetCore.Razor.Tools": "1.0.0-preview2-final", 
    "Microsoft.AspNetCore.Server.IISIntegration.Tools": "1.0.0-preview2-final", 
    "Microsoft.EntityFrameworkCore.Tools": "1.0.0-preview2-final", 
    "Microsoft.Extensions.SecretManager.Tools": "1.0.0-preview2-final", 
    "Microsoft.VisualStudio.Web.CodeGeneration.Tools": { 
     "version": "1.0.0-preview2-final", 
     "imports": [ 
     "portable-net45+win8" 
     ] 
    } 
    }, 

    "frameworks": { 
    "netcoreapp1.0": { 
     "imports": [ 
     "dotnet5.6", 
     "portable-net45+win8" 
     ] 
    } 
    }, 

    "buildOptions": { 
    "emitEntryPoint": true, 
    "preserveCompilationContext": true 
    }, 

    "runtimeOptions": { 
    "configProperties": { 
     "System.GC.Server": true 
    } 
    }, 

    "publishOptions": { 
    "include": [ 
     "wwwroot", 
     "Views", 
     "Areas/**/Views", 
     "appsettings.json", 
     "web.config" 
    ] 
    }, 

    "scripts": { 
    "prepublish": [ "bower install", "dotnet bundle" ], 
    "postpublish": [ "dotnet publish-iis --publish-folder %publish:OutputPath% --framework %publish:FullTargetFramework%" ] 
    } 
} 
+0

請不要將標籤填入標題 – Tseng

+0

請寫下您的project.json我希望看到您的包 –

+0

@BassamAlugili根據您的要求,我在我的帖子中添加了更新2以添加peoject的相關部分。 json文件。請讓我知道,如果您需要更多信息 – nam

回答

13

確保Microsoft.EntityFrameworkCore.Tools在你project.jsondependencies部分中引用。 NuGet不會從tools部分加載軟件包管理器命令。 (見NuGet/Home#3023

{ 
    "dependencies": { 
    "Microsoft.EntityFrameworkCore.Tools": { 
     "version": "1.0.0-preview2-final", 
     "type": "build" 
    } 
    } 
} 
+2

我已經在我的文章的更新2中複製了整個project.json文件內容。 'Microsoft.EntityFrameworkCore.Tools'也在依賴關係部分中。按照教程中的指示,「Add-Migration」和「Update-Database」命令在晚上工作。但是,當我在第二天早上對我的模型進行小修改並嘗試了這些命令後嘗試了這些命令後,他們給出了我的文章中描述的錯誤消息。我甚至從SQL Server中刪除了Migration文件夾和相應的數據庫,但運行這些命令後我得到了相同的錯誤消息。我可能錯過了什麼? – nam

+0

我也有這些症狀。我正在使用Visual Studio 2015更新3 –

+0

嘗試[在NuGet上提交錯誤](https://github.com/NuGet/Home/issues/new),其中包含可重複的步驟和大量環境信息。我在球隊面前提到過這方面的問題,但他們永遠無法複製它們。 – bricelam

2

我有同樣的問題,發現它是在解決方案文件中的Visual Studio版本問題。

我定位:

VisualStudioVersion = 14.0.25123.0

但我需要的目標:

VisualStudioVersion = 14.0.25420.1

直接進行到解決方案文件的變化之後,EF核心cmdlet開始在包工作經理控制檯。

+0

謝謝你試圖幫助。我使用的版本是'14.0.25421.03 Update 3',比你使用的版本更高。 – nam

2

我遇到了同樣的問題。我的大部分項目都有相同的工具。

"tools": { 
    "Microsoft.EntityFrameworkCore.Tools": "1.0.0-preview2-final" 
} 

這工作得很好,只有一個項目。我改變了工具進入

"tools": { 
    "Microsoft.EntityFrameworkCore.Tools": { 
    "version": "1.0.0-preview2-final", 
    "type": "build" 
    } 
} 

然後跑到dotnet restore。恢復完成後,Add-Migration正常工作。

31

嘗試以下步驟:

1)打開project.json文件和依賴工具部分刪除所有Microsoft.EntityFrameworkCore.Tools引用。

2)關閉包管理器控制檯(PMC)和重啓的Visual Studio

3)添加依賴部分:

"Microsoft.EntityFrameworkCore.Tools": { 
    "version": "1.0.0-preview2-final", 
    "type": "build" 
} 

4)添加工具 se ction

"Microsoft.EntityFrameworkCore.Tools": "1.0.0-preview2-final" 

5)重啓再次的Visual Studio 2015年

6)打開PMC並鍵入

Add-Migration $Your_First_Migration_Name$ 

這發生,因爲PMC識別工具時Visual Studio正在啓動。

+0

這是爲我工作。謝謝 – malkassem

+0

請標記爲已接受!謝謝 – Gianpolo

+0

爲我工作,多謝了 –

1

我有這個問題,沒有以前的解決方案幫助我。我的問題實際上是由於Windows 7機器上的過時版本的powershell - 一旦我更新到PowerShell 5,它開始工作。

6

我只是有這個問題了。我關閉並打開VS2015,它「固定」的問題...

4

只要嘗試啓動Microsoft.EntityFrameworkCore.Tools。 下午執行

C:\Users\<username>\.nuget\packages\Microsoft.EntityFrameworkCore.Tools\1.0.0-preview2-final\tools\init.ps1. 

它幫助我解決了同樣的問題。 這些工具的版本可能不同。它取決於您在項目中使用的內容。

+1

對我來說,我使用相對路徑 。\ packages \ Microsoft.EntityFrameworkCore.Tools.1.1.0 \ tools \ init.ps1 這是因爲PM的當前目錄已經是Solution目錄,但對我而言,Tools包是解決方案的一部分。 我個人認爲這是最好的解決方案,因爲沒有重新啓動,編輯,重新安裝。它需要一瞬間,而且很有效。 –

0

我認爲這個答案需要在2017年進行更新,因爲MS已經做了一些(突破性的)更改,這裏詳述。

https://github.com/aspnet/EntityFramework/issues/7053

總之,你現在需要的工具科EntityFrameWorkCore.Tools.DotNet參考如下

「Microsoft.EntityFrameworkCore.Tools.DotNet」: 「1.0.0」

我也發佈了一個工作project.json文件以防萬一有人遇到問題。

{ 
    "dependencies": { 
    "Microsoft.NETCore.App": { 
     "version": "1.0.1", 
     "type": "platform" 
    }, 
    "Microsoft.AspNetCore.Diagnostics": "1.0.0", 
    "Microsoft.AspNetCore.Server.IISIntegration": "1.0.0", 
    "Microsoft.AspNetCore.Server.Kestrel": "1.0.1", 
    "Microsoft.Extensions.Logging.Console": "1.0.0", 
    "Microsoft.AspNetCore.Razor.Tools": { 
     "version": "1.0.0-preview2-final", 
     "type": "build" 
    }, 
    "Microsoft.AspNetCore.StaticFiles": "1.0.0", 
    "Microsoft.AspNetCore.Mvc": "1.0.1", 
    "Microsoft.EntityFrameworkCore.SqlServer": "1.0.1", 
    "Microsoft.Extensions.Configuration.Json": "1.0.1", 
    "Microsoft.EntityFrameworkCore.Tools": { 
     "version": "1.0.0-preview2-final", 
     "type": "build" 
    } 
    }, 

    "tools": { 
    "Microsoft.AspNetCore.Server.IISIntegration.Tools": "1.0.0-preview2-final", 
    "Microsoft.AspNetCore.Razor.Tools": "1.0.0-preview2-final", 
    "Microsoft.EntityFrameworkCore.Tools": "1.0.0-preview2-final", 
    "Microsoft.EntityFrameworkCore.Tools.DotNet": "1.0.0" 
    }, 

    "frameworks": { 
    "netcoreapp1.0": { 
     "imports": [ 
     "dotnet5.6", 
     "portable-net45+win8" 
     ] 
    } 
    }, 

    "buildOptions": { 
    "emitEntryPoint": true, 
    "preserveCompilationContext": true 
    }, 

    "runtimeOptions": { 
    "configProperties": { 
     "System.GC.Server": true 
    } 
    }, 

    "publishOptions": { 
    "include": [ 
     "wwwroot", 
     "web.config" 
    ] 
    }, 

    "scripts": { 
    "postpublish": [ "dotnet publish-iis --publish-folder %publish:OutputPath% --framework %publish:FullTargetFramework%" ] 
    } 
} 
+0

您可能還需要重新啓動Visual Studio。 – Francis

1

這是我遵循的步驟,它解決了升級,從2.0版本我的電源外殼問題

1)至3

2)關閉了PM控制檯

3)重新啓動的Visual Studio

4)在PM控制檯中運行以下命令 dotnet restore

5)增加遷移初始遷移

它的工作!

4

同樣的問題......董解決以下

1)接近下午經理 2)關閉Visual Studio的 3)打開Visual Studio 4)打開時經理

似乎訣竅是關閉VS

1

轉到包管理器控制檯(在Visual Studio)之前關閉PM經理,執行以下命令

C:\Users\<YOUR_USER>\.nuget\packages\Microsoft.EntityFrameworkCore.Tools\<YOUR_INSTALLED_VERSION>\tools\init.ps1

5

我該怎麼辦......

1)工具 - > NuGet包管理器 - >軟件包管理器設置

2)常規選項卡

3)清除所有的Nu​​Get緩存(S)

4)重新啓動Visual Studio

0

我試着做所有上述,沒有運氣。我下載了最新的.net core 2.0軟件包,然後再次運行這些命令並運行。

+0

.net core 2.0現在是否穩定,所以項目可以從'1.1.1'升級到'2.0'? – nam

+1

.NET Core 2.0將於2017年8月14日作爲最終版本發佈。 https://blogs.msdn.microsoft.com/dotnet/2017/08/14/announcing-net-core-2-0/ –

相關問題