新しいプロジェクトで「Enable-Migrations」コマンドを実行しようとすると、次のメッセージが表示されました。
PM> Enable-Migrations
The term 'Enable-Migrations' 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, verif
y that the path is correct and try again.
At line:1 char:18
+ Enable-Migrations <<<<
+ CategoryInfo : ObjectNotFound: (Enable-Migrations:String) [], CommandNotFoundException
+ FullyQualifiedErrorId : CommandNotFoundException
しかし、他のすべてのプロジェクトでは、コマンドは問題なく実行されます。
なぜこうなった?
ところで、私はVS2010 Professional SP1を使用しています
編集:コマンドで再インストールしました:Install-Package EntityFramework -IncludePrereleaseそして問題はなくなりました。
コマンド:Install-Package EntityFramework -IncludePrereleaseで再インストールすると、問題はなくなりました。
Visual Studioを再起動するだけでうまくいきました。パッケージなどをインストールする必要はありません。
この問題は、Entity Frameworkがインストールされていないために発生しています。以下のコマンドを使用してEntity Frameworkをインストールしてください。
Install-Package EntityFramework -IncludePrerelease
インストールしたら、パッケージマネージャーコンソールのデフォルトプロジェクトドロップダウンでプロジェクトを選択します。
プロジェクトの少なくとも1つのクラスがデータコンテキストから継承していることを確認してください。そうでない場合は、以下のクラスを使用してください。
public class MyDbContext : DbContext
{
public MyDbContext()
{
}
}
これを行わないと、別のエラーが発生します。
No context type was found in the Assembly
これらを完了した後、実行できます
enable-migrations
管理者特権でVisual Studioを再起動すると、問題が解決しました。
管理者としてVisual Studioを実行していることを確認します。
最初に「Install-Package EntityFramework -IncludePrerelease」、次にVisual StudioをAdministratorとして再起動しました。
VS 2019 Preview、.Net Core、およびEntityFramework Coreでも同じ問題が発生しました。
NuGet Microsoft.EntityFrameworkCore.Tools
およびMicrosoft.EntityFrameworkCore.Design
経由でインストールする必要がありました。それが完了すると、それは魅力のように機能しました。
Visual Studio 2012でも同じエラーが発生しました。 NuGetをアンインストールする必要がありました([ツール]> [拡張機能と更新]> [インストール済み]> [すべて:NuGetパッケージマネージャー:[アンインストール]ボタン)。次に、Visual Studioを閉じました。次に、Visual Studioを再度開き、NuGetを再インストールしました([ツール]> [拡張機能と更新]> [オンライン]> [Visual Studioギャラリー:NuGetパッケージマネージャー:ダウンロード]ボタン)。次に、次のウィンドウで:[インストール]ボタンをクリックし、[閉じる]ボタンをクリックします。次に、Visual Studioを閉じて再度開きます。
私は同じ問題を抱えており、他の人々が提供するほとんどのソリューションを試しましたが、以下の手順でうまくいきました。私はVS 2017を持っています。
手順:
Install-Package EntityFramework -IncludePrerelease
次に、クラスを作成します
public class MyDBContext : DbContext { public MyDBContext() { } }
そして最後に実行する
Enable-Migrations -EnableAutomaticMigrations
私にとってうまくいかなかったもの:
:VSを再起動します。
:-EnableAutomaticMigrationsなしの「Enable-Migrations」コマンドのみ。
:Nuget Package Managerの復元または更新。
最初のエラーは
/ *「enable-migration」という用語は、コマンドレット、関数、スクリプトファイル、または操作可能なプログラムの名前として認識されません。名前のスペルを確認するか、パスが含まれている場合は、パスが正しいことを確認して再試行してください。1行目:1文字:1 + enable-migration + ~~~~~~~~~~~~~~ ~~ + CategoryInfo:ObjectNotFound:(enable-migration:String)[]、CommandNotFoundException * /
私にとってこの症状を修正したのは(VS2013)、NugetでEFパッケージをアンインストールしてから再インストールすることです。 csprojファイルの違いにより、これが変更されました...
<Reference Include="EntityFramework">
<HintPath>..\packages\EntityFramework.6.1.1\lib\net45\EntityFramework.dll</HintPath>
</Reference>
...これに...
<Reference Include="EntityFramework, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089, processorArchitecture=MSIL">
<SpecificVersion>False</SpecificVersion>
<HintPath>..\packages\EntityFramework.6.1.1\lib\net45\EntityFramework.dll</HintPath>
</Reference>
理由はまだ完全にはわかりませんが、少なくともうまくいきました。
.NET Coreでは、パッケージマネージャーコンソールに次のように入力することで、受け入れられた回答で説明されているのと同じ解像度に到達することができました。
Install-Package EntityFramework.Core -Pre
以下のコマンドを使用して、現在のプロジェクトにエンティティフレームワークをインストールします。PM> Install-Package EntityFramework -IncludePrerelease
以下に示すように、モデルフォルダーにクラス「MyDBContext」を追加します。
パブリッククラスMyDBContext:DbContext {public MyDBContext(){}}
次のコマンドを使用して、現在のプロジェクトの移行を有効にします。PM> enable-migrations
既に移行フォルダーがあるため、Visual Studioを再起動し、パッケージマネージャーコンソールでUpdate-Database -verboseを実行しました。それは私のために働いた
私は同じ問題を抱えていましたが、それはプロジェクトパス内のいくつかの文字が原因であることがわかりました[または]私はプロジェクトパスを修正し、うまくいきました!
Enable-Migrations -EnableAutomaticMigrations
上記の提案をすべて試してみましたが、何も機能せず、Nuget Package Manager
を更新しました。
構成セクション「entityFramework」が存在し、.configファイルに記述されているかどうかを確認します
<configSections>
<!-- For more information on Entity Framework configuration, visit http://go.Microsoft.com/fwlink/?LinkID=237468 -->
<section name="entityFramework" type="System.Data.Entity.Internal.ConfigFile.EntityFrameworkSection, EntityFramework, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" requirePermission="false"/></configSections>
<entityFramework>
<defaultConnectionFactory type="System.Data.Entity.Infrastructure.SqlConnectionFactory, EntityFramework"/>
<providers>
<provider invariantName="System.Data.SqlClient" type="System.Data.Entity.SqlServer.SqlProviderServices, EntityFramework.SqlServer"/>
</providers>
</entityFramework>
VS 2013で、UPDATE 1(RC1)をインストールしてみて、問題を解決します。
これらのソリューションはどれも私にとってはうまくいきませんでした。私の解決策は、packages/EntityFramework.6.1.3
とRestore NuGet Packages
を削除することでした
packages/EntityFramework.6.1.3/tools/EntityFramework.psd1
が欠落していることに気づいたので、これが原因である可能性があります。私は手がかりがありませんが、それが最初に削除された方法。
管理者として実行しますvs = >> open opneproject
enabele-migration
add-migration migrationName
update-database
ソリューションには複数のプロジェクトがありましたが、正しい既定のプロジェクトセットがあったため、動作するはずです。
最後に、-StartupProject MyProjectName
オプションをコマンドに追加する必要がありました