web-dev-qa-db-ja.com

Package Manager Console Enable-Migrations CommandNotFoundExceptionは特定のVSプロジェクトでのみ

新しいプロジェクトで「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そして問題はなくなりました。

106
Eduardo Brites

コマンド:Install-Package EntityFramework -IncludePrereleaseで再インストールすると、問題はなくなりました。

75
Eduardo Brites

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

82
Donal

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

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

16
Satchi

管理者としてVisual Studioを実行していることを確認します。

13
jackncoke

最初に「Install-Package EntityFramework -IncludePrerelease」、次にVisual StudioをAdministratorとして再起動しました。

9
Uzay

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

NuGet Microsoft.EntityFrameworkCore.ToolsおよびMicrosoft.EntityFrameworkCore.Design経由でインストールする必要がありました。それが完了すると、それは魅力のように機能しました。

3
Jean-David Lanz

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

3
mee

私は同じ問題を抱えており、他の人々が提供するほとんどのソリューションを試しましたが、以下の手順でうまくいきました。私は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 * /

2
ironman

私にとってこの症状を修正したのは(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>

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

2
biscuit314

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

Install-Package EntityFramework.Core -Pre
2
ne1410s
  1. 以下のコマンドを使用して、現在のプロジェクトにエンティティフレームワークをインストールします。PM> Install-Package EntityFramework -IncludePrerelease

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

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

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

1
snowblindzz

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

1
depcka

私は同じ問題を抱えていましたが、それはプロジェクトパス内のいくつかの文字が原因であることがわかりました[または]私はプロジェクトパスを修正し、うまくいきました!

1
pixparker

Enable-Migrations -EnableAutomaticMigrations

1
chandudab

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

1
Reyan Chougle

構成セクション「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
KiriK

VS 2013で、UPDATE 1(RC1)をインストールしてみて、問題を解決します。

0
Danilo Breda

これらのソリューションはどれも私にとってはうまくいきませんでした。私の解決策は、packages/EntityFramework.6.1.3Restore NuGet Packagesを削除することでした

packages/EntityFramework.6.1.3/tools/EntityFramework.psd1が欠落していることに気づいたので、これが原因である可能性があります。私は手がかりがありませんが、それが最初に削除された方法。

0
Cameron Aavik

管理者として実行しますvs = >> open opneproject

enabele-migration
add-migration migrationName
update-database
0
jamaljaj

ソリューションには複数のプロジェクトがありましたが、正しい既定のプロジェクトセットがあったため、動作するはずです。

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

0
L_7337