「Update-Database」という用語はコマンドレットの名前として認識されません


112

私はEF5 beta1を使用していますが、以前は「Update-Database」を実行できました。Visual Studioをシャットダウンしたので、実行できません。次のエラーが発生します。

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

EF5b1を再インストールしようとしましたが、成功しましたが(既にインストールされています)、 'Update-Database'はまだ機能しません。

誰でも手伝ってくれる???


3
昨日、別のコマンドレットで同様の問題があり、システムの完全な再起動が役立ちました...
nemesv

11
再起動は必要ありません。パッケージの復元を実行した後は、init.ps1スクリプトを実行しません(そのため、コマンドが見つかりませんでした)。VSを終了して再起動する(またはプロジェクトをアンロード/リロードする)だけです。
RickAndMSFT 2013

1
今日私にこれが起こった。チームプロジェクトのリポジトリを開いたところ、一部のパッケージを復元する必要がありました。復元後、update-databaseおよびadd-migrationコマンドは機能しません。Visual Studioを再起動すると修正されました。
jmbertucci、2015

回答:


169

この問題は最近何度も発生しています。うまくいった解決策は、パッケージマネージャーコンソールを閉じ、Visual Studioを閉じてから再度開くことでした。ほとんどの場合、再起動も機能しましたが、常に機能するとは限りません。


7
通常は、VSを再起動して終了する必要があります。元の質問の私のコメントを参照してください。まれに、VSを2回終了/再起動する必要がある場合があります。
RickAndMSFT 2013

1
問題に直面し、Visual Studioを再起動すると、問題は再び機能しました。ありがとう。
Shubh

効果的ではないにせよ、効果的な解決策をありがとう。私が試した100万のことからすべてがうまくいくようです。
ProfK 2017年

1
はい、もちろん。これが解決策です。正当なソリューション。マイクロソフトに感謝します!
Khateeb321 2017

2
データプロジェクトに "Microsoft.EntityFrameworkCore.Tools"バージョン= "3.1.0"をインストールし、メインのWebプロジェクトに "Microsoft.EntityFrameworkCore.Design"バージョン= "3.1.0"をインストールして、問題を解決しました。
HaBo

51

Entity Frameworkを使用する場合:

エラーメッセージ: 「エラーメッセージ(PMCのUpdate-Databaseコマンドから):「Update-Database」という用語は、コマンドレット、関数、スクリプトファイル、または操作可能なプログラムの名前として認識されません。名前のスペルを確認してください、またはパスが含まれていた場合は、パスが正しいことを確認して、もう一度お試しください。」

解決策: 「Visual Studioを終了します。プロジェクトを再度開いて再試行してください。」

詳細については、次をご覧ください。MVC5 WebアプリケーションのAdvanced Entity Framework 6シナリオ(12/12)

お役に立てれば...


@AlbatrossCafe確かに:)
ミュラユルドゥズ

1
VS開発者チームは、このような問題に対してVSの更新ボタンを提供する必要があります:)
sohaib javed

@sohaibjaved一部の問題では、VSを再起動するだけでは不十分であり、Visual Studio 2015で示されているように、非常に遅いディレクトリのクリーニングが必要です。参考までに
MuratYıldız2016年

ビジュアルスタジオを再起動することで解決できる問題の数を失った
EKanadily

21

VSをロードすると、パッケージマネージャーコンソールにこれが表示されることがあります。

値をnullにすることはできません。

パラメータ名:path1

原因はまだわかりませんが、Powershellコンソールの起動中に、EF powershell拡張などの特定のモジュールの登録を中断する問題が発生しているようです。ただし、手動でロードすることもできます。

Import-Module .\packages\EntityFramework.6.1.1\tools\EntityFramework.psm1

6.1.1をEntity Frameworkの現在のバージョンと置き換えてください。


4
ありがとうございました!私のために働いた唯一の解決策。ただし、VS 2015でEF 6.1.3を使用している場合は、EntityFramework.psm1にバグがあり、ここで利用可能なパッチがstackoverflow.com/a/30062684/1267778にあります。
国会は

18

nugetパッケージを再インストールすると、この問題が修正されました

つまり、実行

Install-Package EntityFramework -Version 5.0.0

パッケージマネージャーで


1
これは私にとってはうまくいきます。私が取り組んだプロジェクトはEFを使用し、パッケージがインストールされたと自動的に想定しています。結局、そうではなかった。開発者はEF dllを直接参照しました。EntityFrameworkパッケージは、Update-Database cmdを機能させるためにプロジェクトにインストールする必要があります。
stack247 14年

この答えは助けにならないようですが、私の一日を救いました。おかげで、
ネルソンミランダ

Fluent APIなどを使用して、今日のFKと格闘していて、どういうわけかEntityFrameworkはドロップされ続けています。これらの線に沿って実際に私のために働いたのは、さらに別のことをすることでしたUpdate-Package -Reinstall EntityFramework
Matt Borja

再インストールして再起動します。再インストールしても機能せず、再起動しても機能しない)
RMazitov

9

このエラーは、EFツールが正しくインストールされていない場合に発生します。

Nugetパッケージマネージャーで次のコマンドを試してください//アンインストールして同じバージョンのEFをインストールしてください

Update-Package "EntityFramework" -reinstall

それでも同じ問題が発生する場合。新しいWebプロジェクトを作成し、nugetで以下のコマンドを実行します。

(注:新しいプロジェクトを同じソリューションまたは同じ場所に作成する必要はありません。)

//これにより、EFが最新バージョン(ツールを含む)に更新されます。//特定のバージョンを使用する場合は、-versionフラグを使用します。

Update-Package "EntityFramework"

これが完了したら、元のプロジェクトをチェックして、新しく作成したプロジェクトを削除できます。


はい!!ありがとう=)私はEntityFramwork、EF.Design、EF.SqlServerおよびEF.SqlServer.Designのみをインストールしました。
Janneman96



4

私も同じ問題を抱えていて、その原因はパス名にありました。パス上に次のように角かっこを付けたディレクトリ名がありましたC:\[PROJ]\TestApp

かっこを削除するとC:\PROJ\TestApp、が正常に機能し始めました...


通常は、VSを再起動して終了する必要があります。元の質問の私のコメントを参照してください。
RickAndMSFT 2013

@RickAndMSFTこれは、VSを「再起動」するだけの優れたソリューションに非常に近いものです。
ProfK 2017年

@Antonio私にも同じ問題があり、あなたの解決策も私にとってうまくいきました。
User5590 2018


4

私にとって問題はNugetのバージョンでした。

  1. Nuget Package Managerをアンインストールします。
  2. Visual Studioを再起動します。
  3. Nuget Package Managerの新しいバージョンをインストールしました。
  4. 次にVisual Studioを再起動します。

1
これは私には当てはまりましたが、拡張機能のnugetを更新して更新する必要がありました
Oak

これは私にとってうまくいき、nugetパッケージマネージャーをアンインストールし、nugetパッケージマネージャーを再インストールし、ビジュアルスタジオを再起動し、EntityFrameworkをアンインストールし、EntityFrameworkを再インストールしました
Rizan Zaky

3

「Microsoft.EntityFrameworkCore」と「Microsoft.EntityFrameworkCore.Tools」のアンインストールと再インストールで解決しました


1
EF Coreを使用している場合、これが正解です。または、少なくとも、私にとっての問題Microsoft.EntityFrameworkCore.Toolsはインストールされていないことでした。
Kirk Woll

2

この問題は、ファイルエクスプローラーから直接プロジェクトを開いたときに発生するようです。最初にVSを起動してからプロジェクトを開いてみてください-私にとってはうまくいきました。これはパスへのアクセスについてだと思います。


数回再起動しても問題が解決しない場合、これで問題が解決しました。
Niklas


0

他の回答が機能しない場合(VS 2017):NuGetキャッシュをクリアし、VSを再起動して、パッケージを復元します。


0

破損したパッケージが原因であることがわかりました。Automapperが既にインストールされているときにインストールしました。別のパッケージをインストールしようとしたときに、このパッケージが破損していることは明らかでした。

破損したパッケージを削除すると、この問題は解決しました。

その後、automapperを再インストールできます。問題はバージョン5.4に関するものでしたが、今は幸せに6.0を使用しています。


0

私にとっては、EntityFrameworkコアがプロジェクトにインストールされていないことがわかりました(空のプロジェクトから始めたため)。EntityFrameworkをインストールするパッケージを問題が解決しました。EntityFrameworkのインストールが失敗した場合は、個別のパッケージを1つずつインストールしてみてください。

例えば

Microsoft.EntityFrameworkCore.Design
Microsoft.EntityFrameworkCore.SqlServer
Microsoft.EntityFrameworkCore.SqlServer.Design
Microsoft.EntityFrameworkCore.Tools

0

パッケージマネージャーコンソールを更新して解決しました。

パッケージマネージャーコンソールでUpdate-Databaseを取得していませんでした。その後、数回再起動します。また、Windowsを再起動します。

次に、nugetから新しいものをダウンロードし、解決しました。


0

Visual Studio 2015でこの問題が発生し、Nugetのバージョンを更新することで解決しました。

ツール->拡張機能と更新->更新-> Visual Studio Gallery


0

私にとっての簡単な修正は、次のように、更新とデータベースの間にダッシュがあることを確認することでしたupdate-database。小文字を使用しました。偶然かもしれませんが、Packet Manager Consoleでこれを実行すると、データベースが実際に更新され、not recognized as the name of a cmdlet, function, script fileエラーではなく完了メッセージが表示されました。


0

2017の代わりにVisual Studio 2015で誤ってVisual Studioソリューションを開いた後、同じ問題が発生し始めました。この問題が発生する前に、プロジェクトは問題なく動作しました。これは、EF Coreではなく、EF 5.0の古いプロジェクトでした。

私は提案されたすべてを試しました-Visual Studioを何度も再起動し、NuGetキャッシュをクリーンアップし、パッケージフォルダー内のすべてを削除し、プロジェクトのEF 5を再インストールしました-良くない、移行の追加が認識されませんでした。EFを6にアップグレードすると、コマンドが認識され始めましたが、まだアップグレードしたくありませんでした。したがって、EF 5に戻るとすぐに問題が再発しました。

最終的に私を救った唯一のことは、次のことをすることでした:

  • Visual Studioを閉じる
  • パッケージフォルダからすべてを削除する
  • ソリューションのルートにある.vsフォルダーを削除します。このフォルダーは通常非表示です。非表示のファイルとフォルダーの設定をオンにするか、フォルダーの[表示]タブで[非表示のアイテム]をオンにする必要があります
  • Visual Studioを起動してソリューションを開きます。NuGetパッケージを復元するように求められ、同意します。

EFコマンドが再び機能するようになりました。


0

私の場合:

  • プロジェクトの再読み込みは役に立たなかった
  • 再起動VSは助けにはならなかった
  • コンピュータを再起動しても役に立たなかった
  • Reinstal EFは役に立たなかった

しかし、PM Conoleを使用して、不足しているEFパッケージを手動でインポートすることを提案する記事を見つけました。

Import-Module .\packages\EntityFramework.X.X.X\tools\EntityFramework.psm1

そして、この解決策は私の問題を解決しました。


0

私の場合、Visual Studioの再起動(多くの場合、何度も)は機能しませんでした。それで、他の場所を探していると、出力ターミナルにメッセージが見つかりました。

現在の.NET SDKは、.NET Core 2.2のターゲットをサポートしていません。.NET Core 2.1以下をターゲットにするか、.NET Core 2.2をサポートするバージョンの.NET SDKを使用してください。

そのため、必要なバージョンの.NET Coreをインストールし、コマンドは正常に実行されました。


0

EntityFramework 6.3.0を使用する既存のプロジェクトでVS 2019でこの問題が発生しました。このプロジェクトでは、ある期間にわたっていくつかの奇妙なバージョンの変更が行われ、何も機能しませんでした。私はここに記載されているすべての提案を運なしで試したと思います。

最後に、EntityFrameworkのプレリリースバージョン(現在は6.4.0-preview3-19553-01)に更新すると、パッケージマネージャーコンソールで次のコマンドを実行して問題が解決しましたUpdate-Package EntityFramework -prerelease。このバージョンが次の数週間でライブでリリースされるときに、正しく動作することを願っています。



0

私の場合、私は次のことを行いました:-パッケージマネージャーコンソールの上部にある[復元]ボタンをクリックして、不足しているNuGetパッケージを復元しました-Visual Studioを再起動しました-実行 update-database


-1

私にとって問題はNugetのバージョンでした。

Nugetを削除して再インストールしてからVisual Studioを再起動すると、すべてが機能し始めました。

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