私はこれを使用しています MSDNチュートリアル VS2015で昨日正常に実行されたコマンドPM> Add-Migration MyFirstMigration -context BloggingContext
を実行しますが、今日は他のユーザーからも指摘されている次のエラーを与えています ここ 。ソリューションエクスプローラーから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
注:2016年6月27日にリリースされたASP.NET Core 1.0およびVS2015-Update 3の最新バージョンを使用しています。
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%" ]
}
}
次の手順を試してください。
1)project.json
ファイルを開き、RemovedependenciesおよびtoolsセクションからのすべてのMicrosoft.EntityFrameworkCore.Tools参照。
2)閉じるパッケージマネージャーコンソール(PMC)および再起動 Visual Studio
3)Adddependenciesセクションの下:
"Microsoft.EntityFrameworkCore.Tools": {
"version": "1.0.0-preview2-final",
"type": "build"
}
4)追加の下でtoolsセクション
"Microsoft.EntityFrameworkCore.Tools": "1.0.0-preview2-final"
5)再起動 Visual Studio 2015
6)OpenPMCおよびタイプ
Add-Migration $Your_First_Migration_Name$
これは、Visual Studioの起動時にPMCがツールを認識するために発生します。
Microsoft.EntityFrameworkCore.Tools
のdependencies
セクションでproject.json
が参照されていることを確認してください。 NuGetは、tools
セクションからパッケージマネージャーコマンドを読み込みません。 ( NuGet/Home#302 を参照)
{
"dependencies": {
"Microsoft.EntityFrameworkCore.Tools": {
"version": "1.0.0-preview2-final",
"type": "build"
}
}
}
同じ問題...ドンによって解決された次の
1.)PMマネージャーを閉じる2.)Visual Studioを閉じる3.)Visual Studioを開く4.)PMマネージャーを開く
vSを閉じる前にPM Managerを閉じることがトリックのようです
私もこの問題を抱えていました。 VS2015を閉じて開いたところ、問題が「修正」されました...
Entity-Framework
バージョンが何であるかを知る必要があります。その後、project.json
を確認し、これらのセクションを制御する必要があります。
In 依存関係
小切手:
Microsoft.EntityFrameworkCore.Tools": {
"version": "1.0.0-preview2-final",
"type": "build"
},
このセクション:
「バージョン」:「1.0.0-preview2-final」、
Entity-Framework
のバージョンに関連しているため、これを変更する必要があります。
その後、proj.json
の2番目のセクションは、Tools
のJSON
セクションにあります。
"Microsoft.EntityFrameworkCore.Tools": "1.0.0-preview2-final",
また、コードのこの部分は、Entity-Framework
およびDependenciesセクションのコードの最後の部分に関連しています。
注:この問題を実行した後、CMD
を閉じてVisual Studioを再起動する必要があります。
とても簡単です。
Microsoft.EntityFrameworkCore.Tools
パッケージをnugetからインストールするだけです:
インストールパッケージMicrosoft.EntityFrameworkCore.Tools-バージョン2.1.3
次のリンクを使用して、最新バージョンをインストールすることもできます。 Nuget package link
しなければならないこと...
1)ツール-> Nugetパッケージマネージャー->パッケージマネージャーの設定
2)一般タブ
3)すべてのNuGetキャッシュをクリアする
4)Visual Studioを再起動します
Visual Studio 2013でこの問題が発生しました。NuGetパッケージマネージャーを再インストールしました。
https://marketplace.visualstudio.com/items?itemName=NuGetTeam.NuGetPackageManagerforVisualStudio201
Init Microsoft.EntityFrameworkCore.Toolsを試してください。 PMで実行
C:\Users\<username>\.nuget\packages\Microsoft.EntityFrameworkCore.Tools\1.0.0-preview2-final\tools\init.ps1.
同じ問題を解決してくれました。ツールのバージョンは異なる場合があります。プロジェクトで使用するものに依存します。
私は同じ問題を抱えていましたが、それはソリューションファイルのVisual Studioのバージョン管理の問題であることがわかりました。
狙っていた:
VisualStudioVersion = 14.0.25123.0
しかし、私はターゲットにする必要がありました:
VisualStudioVersion = 14.0.25420.1
ソリューションファイルに直接変更を加えた後、EF Coreコマンドレットはパッケージマネージャーコンソールで動作を開始しました。
私は同じ問題に遭遇しました。私のプロジェクトのほとんどは、ツールに同じものがありました。
"tools": {
"Microsoft.EntityFrameworkCore.Tools": "1.0.0-preview2-final"
}
これは、1つを除くすべてのプロジェクトで正常に機能しました。ツールのエントリを次のように変更しました
"tools": {
"Microsoft.EntityFrameworkCore.Tools": {
"version": "1.0.0-preview2-final",
"type": "build"
}
}
そして、dotnet restore
を実行しました。復元が完了した後、Add-Migration
は正常に機能しました。
私はこの問題を抱えていましたが、以前の解決策はどれも私を助けませんでした。私の問題は、実際にはWindows 7マシンの古いバージョンのPowerShellが原因でした。PowerShell5にアップデートすると動作し始めました。
(Visual Studioで)パッケージマネージャーコンソールに移動し、以下のコマンドを実行します
C:\Users\<YOUR_USER>\.nuget\packages\Microsoft.EntityFrameworkCore.Tools\<YOUR_INSTALLED_VERSION>\tools\init.ps1
これらは私が従った手順であり、問題を解決しました
1)Power Shellをバージョン2から3にアップグレードしました
2)PMコンソールを閉じた
3)Visual Studioの再起動
4)PM Console dotnet restoreで以下のコマンドを実行しました
5)Add-Migration InitialMigration
動いた !!!
MSはここで詳細に説明するいくつかの(重大な)変更を行っているため、答えは2017年に更新する必要があると思います。
https://github.com/aspnet/EntityFramework/issues/705
要約するには、次のように、Toolsセクションで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%" ]
}
}
上記のすべてを試してみましたが、運はありませんでした。最新の.netコア2.0パッケージをダウンロードし、コマンドを再度実行すると動作しました。