135

新しいプロジェクトでコマンド「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

しかし、他のすべてのプロジェクトでは、コマンドは問題なく実行されます。

なぜこうなった?

ところで、私はVS2010ProfessionalSP1を使用しています

編集:コマンド:Install-Package EntityFramework -IncludePrereleaseを使用して再インストールする と、問題は解決しました。

4

26 に答える 26

98

コマンドを使用して再インストールしInstall-Package EntityFramework -IncludePrereleaseました。問題は解決しました。

于 2012-05-07T17:17:33.317 に答える
86

VisualStudioを再起動するだけでうまくいきました。パッケージなどをインストールする必要はありません。

于 2015-02-11T23:17:25.347 に答える
33

この問題は、EntityFrameworkがインストールされていないために発生しています。以下のコマンドを使用してEntityFrameworkをインストールしてください。

Install-Package EntityFramework -IncludePrerelease

インストールしたら、パッケージマネージャーコンソールのデフォルトプロジェクトドロップダウンでプロジェクトを選択します。

プロジェクト内の少なくとも1つのクラスがデータコンテキストから継承していることを確認してください。そうでない場合は、以下のクラスを使用してください。

public class MyDbContext : DbContext
    {
        public MyDbContext()
        {
        }
    }

これを行わないと、別のエラーが発生します。

No context type was found in the assembly

これらを完了した後、実行できます

enable-migrations
于 2017-05-20T12:04:58.490 に答える
28

VS 2019 Preview、.Net Core、およびEntityFrameworkCoreでも同じ問題が発生しました。

NuGetMicrosoft.EntityFrameworkCore.Toolsとを介してインストールする必要がありMicrosoft.EntityFrameworkCore.Designました。それが行われると、それは魅力のように機能しました。

于 2019-02-19T08:51:12.577 に答える
17

管理者権限でVisualStudioを再起動すると、問題が解決しました。

于 2015-05-10T06:01:43.767 に答える
15

VisualStudioを管理者として実行していることを確認してください。

于 2013-04-16T16:28:58.497 に答える
10

最初に「Install-PackageEntityFramework-IncludePrerelease」を実行し、次に管理者としてVisualStudioを再起動しました。

于 2013-07-17T18:40:15.900 に答える
5

私は同じ問題を抱えていて、他の人々によって提供された解決策のほとんどを試しましたが、それは以下の手順で私のために働きました。私はVS2017を持っています。

手順:

Install-Package EntityFramework -IncludePrerelease

次に、次のようにクラスを作成します

public class MyDBContext : DbContext { public MyDBContext() { } }

そして最後に実行

Enable-Migrations -EnableAutomaticMigrations

私にとってうまくいかなかったこと:

:VSを再起動します。

:-EnableAutomaticMigrationsがない「Enable-Migrations」コマンドのみ。

:NugetPackageManagerの復元または更新。

最初の私の最初のエラーは

/ *「enable-migration」という用語は、コマンドレット、関数、スクリプトファイル、または操作可能なプログラムの名前として認識されません。名前のスペルを確認するか、パスが含まれている場合は、パスが正しいことを確認して、再試行してください。行:1文字:1 + enable-migration + ~~~~~~~~~~~~~~ ~~ + CategoryInfo:ObjectNotFound:(enable-migration:String)[]、CommandNotFoundException * /

于 2018-08-12T01:26:45.267 に答える
4

asp.netコアVS2019でも同じ問題が発生しました

これはそれを解決しました:

Install-Package Microsoft.EntityFrameworkCoreInstall-Package
Install-Package Microsoft.EntityFrameworkCore.Tools

異なる場合に備えて、パッケージマネージャーコンソールのデフォルトプロジェクトをデータベースプロジェクトに設定することを忘れないでください。

移行の実行中、デフォルトのプロジェクトも役割を果たしているようです。後のステップで、これを私のメインのスタートアッププロジェクト(EFデータベースプロジェクトではない)にインストールするのに役立ちました:

Install-Package Microsoft.EntityFrameworkCore.Design
于 2020-04-07T23:21:54.593 に答える
3

Visual Studio 2012でも、同じエラーが発生しました。NuGetをアンインストールする必要がありました([ツール]>[拡張機能と更新]>[インストール済み]>[すべて]:NuGetパッケージマネージャー:[アンインストール]ボタン)。次に、VisualStudioを閉じました。次に、Visual Studioを再度開き、NuGetを再インストールしました([ツール]>[拡張機能と更新]>[オンライン]>[Visual Studioギャラリー:NuGetパッケージマネージャー:ダウンロード]ボタン)。次に、次のウィンドウで、[インストール]ボタンをクリックしてから、[閉じる]ボタンをクリックします。次に、VisualStudioを閉じてから再度開きます。

于 2013-08-13T19:07:41.017 に答える
2

この症状を修正したのは(VS2013)、EfパッケージをアンインストールしてからNugetで再インストールすることです。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>

理由はまだよくわかりませんが、少なくともうまくいきました。

于 2014-12-11T03:59:57.683 に答える
2

.NET Coreでは、パッケージマネージャーコンソールに次のように入力することで、受け入れられた回答に記載されているのと同じ解像度に到達することができました。

Install-Package EntityFramework.Core -Pre
于 2016-06-12T14:18:39.257 に答える
2

Enable-Migrations -EnableAutomaticMigrations

于 2016-10-03T17:42:58.650 に答える
2

管理者として実行vs=>>プロジェクトを開く

-> On the Package manager Console

Enable-migration
add-migration migrationName
update-database
于 2019-05-07T14:49:47.103 に答える
1

同じ問題が発生しましたが、プロジェクトパスに[または]のような文字が含まれていることが原因であることがわかりました。プロジェクトパスを修正すると、正常に機能しました。

于 2014-11-27T11:32:46.490 に答える
1

すでに移行フォルダーがあったので、Visual Studioを再起動し、パッケージマネージャーコンソールでUpdate-Database-verboseを実行しました。それは私のために働いた

于 2017-03-28T02:18:07.000 に答える
1

上記の提案をすべて試しましたが、何も機能しませんでした。その後、更新Nuget Package Managerして機能しました。

于 2017-12-19T17:59:52.843 に答える
1
  1. 次のコマンドを使用して、現在のプロジェクトにEntityFrameworkをインストールします。PM>Install-Package EntityFramework -IncludePrerelease

  2. 以下に示すように、Modelフォルダーにクラス「MyDBContext」を追加します。

    public class MyDBContext:DbContext {public MyDBContext(){}}

  3. 次に、次のコマンドを使用して、現在のプロジェクトの移行を有効にします。PM> enable-migrations

于 2018-07-29T20:25:56.280 に答える
0

VS 2013では、UPDATE 1(RC1)をインストールしてみてください。そうすれば、問題は解決します。

于 2014-04-26T02:14:21.810 に答える
0

ソリューションに複数のプロジェクトがありましたが、正しいデフォルトプロジェクトが設定されていたので、機能するはずだと思いました。

最後に-StartupProject MyProjectName、コマンドにオプションを追加する必要がありました

于 2016-02-16T15:05:44.070 に答える
0

これらの解決策はどれも私にはうまくいきませんでした。私の解決策は、削除packages/EntityFramework.6.1.3してRestore NuGet Packages

それが欠けていることに気づいたpackages/EntityFramework.6.1.3/tools/EntityFramework.psd1ので、これが原因である可能性があります。手がかりはありませんが、そもそもどうやって取り除いたのか。

于 2016-12-12T05:07:59.233 に答える
0

構成セクション「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>
于 2017-08-21T15:22:03.097 に答える
0

EntityFrameworkのバージョンを確認してください。

6.3の場合は、6.2にダウングレードすると、問題なく動作するはずです。

于 2019-10-07T11:28:39.863 に答える
0

MVC Webプロジェクトを作成する場合プロジェクトを作成するときに、[認証]を選択する必要があります。デフォルトでは選択されていません。 ここに画像の説明を入力してください

于 2020-05-05T05:05:36.910 に答える
0

6.2へのダウングレードは私を助けました。
.NET Frameworkバージョン4.6.1
古い形式のプロジェクト(.NET標準以外)
Visual Studioは、初期移行のための管理者権限で開いている必要があります。
6.2より上のバージョンのEFには、最新の.NETFrameworkが必要だと思います。

于 2020-05-20T07:38:41.133 に答える
-4

ソリューションエクスプローラーウィンドウでプロジェクトが開いているかどうかを確認します。

これが問題の原因である可能性があります。

于 2016-09-15T00:51:08.640 に答える