特定のVSプロジェクトでのみパッケージマネージャーコンソールのEnable-Migrations CommandNotFoundException


122

新しいプロジェクトで「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を使用して再インストールし 、問題は解消しました。


2
こんにちは。ソリューションを回答として追加し、承認済みとしてマークしてください(2日後に行うことができます)。これにより、回答が未回答の質問として表示されなくなります。
Gert Arnold、

1
私はこれとまったく同じ問題を抱えています。しかし、このスレッドの機能はどれも機能していないようです。Visual Studio全体を再インストールしましたか、それとも単にそのコマンドを実行しましたか?
ObedMarsh 2014

私は単にコマンドを実行しました...
Eduardo Brites

2
残念なことに、このコマンドの結果は、「「EntityFramework 6.1.0」がすでにインストールされている」だけです。また、有効なコマンドとしてのadd-migrationまたはenable-migrationsはまだありません。
Mir

Install-Package:パッケージ 'EntityFramework'が見つかりません。私があなたの解決策を試すとき
Naguib Ihab

回答:


85

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


8
VSの再起動もうまくいきました。EntityFrameworkを再インストールする前に試してみてうれしい
SM3RKY

5
Visual Studio 2015では再起動が機能しました。パッケージをインストールする必要はありません。
jonas

5
注-パッケージをインストールする必要があるたびに、この問題が発生します(新しいリポジトリプルのように)。PMが新しいパッケージで正しく初期化される前に、VSを再起動する必要があるようです(VS Community 2015 Update 1)
Jono

2
新鮮なレポプルもこれを引き起こしました。再起動して修正しました。(VS Enterprise 2015 Update 2)。
Mike Rouse

84

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


13
私は自分のソリューションを構築し、VS 2013を閉じて再度開いたところ、うまくいきました
Luke

ご了承ください EntityFramework.netフレームワーク4.0および4.5のみがサポートされている。したがって、.netフレームワーク4.6以降を使用している場合は機能しません。
TAN

1
@TânNguyễn-それは何ですか?私のEntityFramework 6.1.3 NuGetは、私の4.6.xプロジェクトで正常に動作しています
bkwdesign

再起動は私のためにそれをしませんでしたが、これはしました。
robbpriestley 2017

29

この問題は、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

私のために働いた。ありがとう。
Najeeb 2017年

VS 2019で、今日私のために働いた
perezdr

17

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


13

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


1
管理者としてVSを実行していました。当時、私は各プロジェクトにパッケージをインストールする必要があることを知りませんでした。
Eduardo Brites 2013

12

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

NuGet Microsoft.EntityFrameworkCore.Toolsと経由でインストールしなければならなかったことがわかりましたMicrosoft.EntityFrameworkCore.Design。それが行われると、それは魅力のように機能しました。


10

最初に "Install-Package EntityFramework -IncludePrerelease"を実行し、次に管理者としてVisual Studioを再起動して一緒に作業しました。


3

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


これは私にとってはうまくいきました。プレリリースに強制的にアップグレードするよりも良いオプションだと思います。
OverMars 2014

2

私(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>

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


add-migration / update-databaseなどで問題が発生しました。すべての解決策を試しましたが、EFのアンインストールと再インストールをすでに試みたはずですが、機能しませんでした。今まではそうしました。EFパッケージで問題が発生したのは今回が初めてではありません。:(
GeoffM 2015

2

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

Install-Package EntityFramework.Core -Pre

2

私は同じ問題を抱えており、他の人々から提供されたほとんどの解決策を試しましたが、以下の手順でうまくいきました。私は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 * /


1

同じ問題があり、[または]などのプロジェクトパスの一部の文字が原因であることがわかりました。プロジェクトパスを修正すると、問題なく動作しました。


1

Enable-Migrations -EnableAutomaticMigrations


1
いくつかの解決策を試した後、あなたの解決策は私にとってうまくいきます。
nguyenhoai890 2016年

Visual Studio Community 2015で私のために働きました。ありがとう(私の場合、他のすべての解決策は失敗しました)
fedeteka '14年

1

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


1

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


1
  1. 次のコマンドを使用して、Entityフレームワークを現在のプロジェクトにインストールします。PM> Install-Package EntityFramework -IncludePrerelease

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

    パブリッククラスMyDBContext:DbContext {public MyDBContext(){}}

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


1

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

-> On the Package manager Console

Enable-migration
add-migration migrationName
update-database


0

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

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


0

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

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


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>

0

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

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


2
これについて詳しく説明してください。この問題を解決するためだけに、インストールされているライブラリのバージョンをダウングレードする必要があるのはなぜですか?
andrensairr

0

私はasp.netコアで同じ問題を抱えていました VS2019

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

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

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

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

Install-Package Microsoft.EntityFrameworkCore.Design

8年前、.netコアは存在しないと思います。
AFetter

0

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


0

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


-4

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

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

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.