「追加移行」という用語は認識されません


116

私はこのMSDNチュートリアルを使用PM> Add-Migration MyFirstMigration -context BloggingContextして、昨日正常に実行されたコマンドをVS2015で実行していますが、今日は次のエラーが発生します。これは、他のユーザーからも指摘されています。ソリューションエクスプローラーからMigrationsフォルダーを削除し、対応するdbをSQL Express 2014 on Win 8.1同じエラーから削除しました。実行してもAdd-Migration MyFirstMigration同じエラーが発生します:

Add-Migration : The term 'Add-Migration' 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, verify that the path is correct and try again.
At line:1 char:1
+ Add-Migration MyFirstMigration -context BloggingContext
+ ~~~~~~~~~~~~~
    + CategoryInfo          : ObjectNotFound: (Add-Migration:String) [], CommandNotFoundException
    + FullyQualifiedErrorId : CommandNotFoundException

:2016年6月27日にリリースされた最新バージョンのASP.NET Core1.0およびVS2015-Update3-を使用しています。

更新

コマンドウィンドウを使用する場合、次のコマンドはWindowsエクスプローラーのプロジェクトディレクトリから正常に機能します。

> dotnet ef migrations add MyFirstMigration --context BloggingContext
> dotnet ef database update --context BloggingContext

更新2a

以下はproject.jsonファイルです。

{
  "userSecretsId": "aspnet-ASPCore_RTM_CodeFirst_test-bef835d9-9831-41a8-bc3a-cd2f1477a880",

  "dependencies": {
    "Microsoft.NETCore.App": {
      "version": "1.0.0",
      "type": "platform"
    },
    "Microsoft.AspNetCore.Authentication.Cookies": "1.0.0",
    "Microsoft.AspNetCore.Diagnostics": "1.0.0",
    "Microsoft.AspNetCore.Diagnostics.EntityFrameworkCore": "1.0.0",
    "Microsoft.AspNetCore.Identity.EntityFrameworkCore": "1.0.0",
    "Microsoft.AspNetCore.Mvc": "1.0.0",
    "Microsoft.AspNetCore.Razor.Tools": {
      "version": "1.0.0-preview2-final",
      "type": "build"
    },
    "Microsoft.AspNetCore.Server.IISIntegration": "1.0.0",
    "Microsoft.AspNetCore.Server.Kestrel": "1.0.0",
    "Microsoft.AspNetCore.StaticFiles": "1.0.0",
    "Microsoft.EntityFrameworkCore.SqlServer": "1.0.0",
    "Microsoft.EntityFrameworkCore.SqlServer.Design": {
      "version": "1.0.0",
      "type": "build"
    },
    "Microsoft.EntityFrameworkCore.Tools": "1.0.0-preview2-final",
    "Microsoft.Extensions.Configuration.EnvironmentVariables": "1.0.0",
    "Microsoft.Extensions.Configuration.Json": "1.0.0",
    "Microsoft.Extensions.Configuration.UserSecrets": "1.0.0",
    "Microsoft.Extensions.Logging": "1.0.0",
    "Microsoft.Extensions.Logging.Console": "1.0.0",
    "Microsoft.Extensions.Logging.Debug": "1.0.0",
    "Microsoft.Extensions.Options.ConfigurationExtensions": "1.0.0",
    "Microsoft.VisualStudio.Web.BrowserLink.Loader": "14.0.0",
    "Microsoft.VisualStudio.Web.CodeGeneration.Tools": {
      "version": "1.0.0-preview2-final",
      "type": "build"
    },
    "Microsoft.VisualStudio.Web.CodeGenerators.Mvc": {
      "version": "1.0.0-preview2-final",
      "type": "build"
    }
  },

  "tools": {
    "BundlerMinifier.Core": "2.0.238",
    "Microsoft.AspNetCore.Razor.Tools": "1.0.0-preview2-final",
    "Microsoft.AspNetCore.Server.IISIntegration.Tools": "1.0.0-preview2-final",
    "Microsoft.EntityFrameworkCore.Tools": "1.0.0-preview2-final",
    "Microsoft.Extensions.SecretManager.Tools": "1.0.0-preview2-final",
    "Microsoft.VisualStudio.Web.CodeGeneration.Tools": {
      "version": "1.0.0-preview2-final",
      "imports": [
        "portable-net45+win8"
      ]
    }
  },

  "frameworks": {
    "netcoreapp1.0": {
      "imports": [
        "dotnet5.6",
        "portable-net45+win8"
      ]
    }
  },

  "buildOptions": {
    "emitEntryPoint": true,
    "preserveCompilationContext": true
  },

  "runtimeOptions": {
    "configProperties": {
      "System.GC.Server": true
    }
  },

  "publishOptions": {
    "include": [
      "wwwroot",
      "Views",
      "Areas/**/Views",
      "appsettings.json",
      "web.config"
    ]
  },

  "scripts": {
    "prepublish": [ "bower install", "dotnet bundle" ],
    "postpublish": [ "dotnet publish-iis --publish-folder %publish:OutputPath% --framework %publish:FullTargetFramework%" ]
  }
}

タイトルにタグを
Tseng 2016

あなたのproject.jsonを書いてくださいあなたのパッケージを見たい
Bassam Alugili 2016

@BassamAlugiliリクエストに応じて、peoject.jsonファイルの関連セクションを追加するために、投稿にUPDATE2を追加しました。さらに情報が必要な場合はお知らせください
nam

@briceIam(EFチーム)から回答がありました。うまくいくと思います。
Bassam Alugili 2016

@BassamAlugili投稿のUPDATE2セクションにproject.jsonファイルのコンテンツ全体を追加しました。からの回答の下にある私のコメントをご覧ください@bricelam。私は何が欠けている可能性がありますか?
nam 2016

回答:


233

とても簡単です。

Microsoft.EntityFrameworkCore.Toolsnugetからパッケージをインストールするだけです。

インストールパッケージMicrosoft.EntityFrameworkCore.Tools-バージョン3.1.5

このリンクを使用して、最新バージョンをインストールすることもできますNugetパッケージリンク

.NET CLIコマンド:

dotnet add package Microsoft.EntityFrameworkCore.Tools

私はまだVisual Studioの2017年使用しているので、私はバージョン2.2.6をインストール
BLUE

どうもありがとう、これは誰もがよくある間違いです
Nitesh Shaw

1
また、Visual Studioを再起動する必要がありました
Liviu Sosu

48

次の手順を試してください。

1)project.jsonファイルを開き、依存関係ツールのセクションからすべてのMicrosoft.EntityFrameworkCore.Tools参照を削除します。

2)閉じるパッケージマネージャコンソール(PMC)と再起動のVisual Studioを

3)依存関係セクションの下に追加します。

 "Microsoft.EntityFrameworkCore.Tools": {
  "version": "1.0.0-preview2-final",
  "type": "build"
 }

4)ツールセクションの下に追加

"Microsoft.EntityFrameworkCore.Tools": "1.0.0-preview2-final"

5)Visual Studio2015を再起動します

6)PMC開き、次のように入力します

Add-Migration $Your_First_Migration_Name$

これは、VisualStudioの起動時にPMCがツールを認識するために発生します。


5
再起動/再インストールしなくても、VS2015で1時間のコーディングをほとんど完了できません...
Ryan Murphy

37

Microsoft.EntityFrameworkCore.Toolsdependenciesセクションで参照されていることを確認してくださいproject.json。NuGetは、toolsセクションからパッケージマネージャーコマンドをロードしません。(NuGet / Home#3023を参照)

{
  "dependencies": {
    "Microsoft.EntityFrameworkCore.Tools": {
      "version": "1.0.0-preview2-final",
      "type": "build"
    }
  }
}

2
投稿のUPDATE2でproject.jsonファイルの内容全体をコピーしました。Microsoft.EntityFrameworkCore.Toolsだけでなく、依存関係のセクションの内側にあります。チュートリアルで指示されたコマンドは、前の晩に働きました。しかし、モデルに小さな変更を加えた後、翌朝それらを試し、これらのコマンドを再度試したところ、私の投稿に記載されているエラーメッセージが表示されました。移行フォルダーと対応するデータベースをSQLServerから削除しましたが、これらのコマンドを実行した後、同じエラーメッセージが表示されました。私は何が欠けている可能性がありますか?Add-MigrationUpdate-Database
nam 2016

私もこれらの症状があります。Visual Studio 2015 Update 3を使用しています
Kolya_Net 2016

再現可能な手順と多くの環境情報を使用して、NuGetにバグを報告してみてください。チームの前にこの分野の問題について言及しましたが、彼らはそれらを再現することはできません。
bricelam 2016

1
奇妙なことに、これを削除しtoolsて後で再度追加すると、問題が解決します。に移動するだけdependenciesで、次のエラーメッセージが表示されます。「Microsoft.EntityFrameworkCore.Tools」がプロジェクト「src \ <yourproject>」にインストールされていないため、このコマンドを実行できません。project.jsonの「tools」セクションに「Microsoft.EntityFrameworkCore.Tools」を追加します。詳細については、go.microsoft.com / fwlink /?LinkId = 798221を参照してください。
Thorsten Westheider 2016

VS2017 ASP.NET Coreを使用していますが、同じ問題が発生しました。この答えもそれを解決しました!
Westerlund.io 2017年

14

同じ問題...次のドンによって解決されました

1.)午後のマネージャーを閉じる2.)Visual Studioを閉じる3.)Visual Studioを開く4.)午後のマネージャーを開く

トリックは、VSを閉じる前にPMマネージャーを閉じることだと思われます


はい、PMとVSのリロードは解決策です。以前に古いビジュアルスタジオで作成された最新のビジュアルスタジオでプロジェクトを開くと発生します。このようなコードを開くと、VSはいくつかの自動調整を試みます。これらの調整は、PMを再起動するだけで適切に実行されます。およびVS。
Malik Khalil 2018年

9

私もこの問題を抱えていました。VS2015を閉じて開いたところ、問題が「修正」されました...


これは、VS2019コミュニティエディションで発生しました。
Gabe

9

あなたはあなたのEntity-Frameworkバージョンが何であるかを知る必要があります。また、その後、project.jsonこれらのセクションをチェックして制御する必要があります。

依存

小切手:

Microsoft.EntityFrameworkCore.Tools": {
  "version": "1.0.0-preview2-final",
  "type": "build"
},

このセクション:

"バージョン": "1.0.0-preview2-final"、

はのバージョンに関連しEntity-Frameworkており、これを変更する必要があります。

その後、の2番目のセクションproj.jsonがここにToolsありJSONます。あなたのセクションには次のようなものがあります。

"Microsoft.EntityFrameworkCore.Tools": "1.0.0-preview2-final",

また、コードのこの部分はEntity-Framework依存関係セクションのコードの最後の部分に関連しています。

注:この問題を実行した後CMD、VisualStudioを閉じて再起動する必要があります。


6

私がしなければならなかったこと...

1)[ツール]-> [Nugetパッケージマネージャー]-> [パッケージマネージャーの設定]

2)[一般]タブ

3)すべてのNuGetキャッシュをクリアします

4)VisualStudioを再起動します



5

Microsoft.EntityFrameworkCore.Toolsを初期化してみてください。PMで実行

C:\Users\<username>\.nuget\packages\Microsoft.EntityFrameworkCore.Tools\1.0.0-preview2-final\tools\init.ps1.

それは同じ問題で私を助けました。ツールのバージョンは異なる場合があります。プロジェクトで何を使用するかによって異なります。


1
私の場合、相対パス。\ packages \ Microsoft.EntityFrameworkCore.Tools.1.1.0 \ tools \ init.ps1を使用します。これは、PMの現在のディレクトリがすでにソリューションディレクトリになっているためですが、私にとっては、ツールパッケージは解決。個人的には、再起動、編集、再インストールがないため、これが最善の解決策だと思います。それは一瞬かかり、それは機能します。
ウィリアムリーダー

4

私は同じ問題に遭遇しました。私のプロジェクトのほとんどは、ツールで同じことをしていました。

"tools": {
    "Microsoft.EntityFrameworkCore.Tools": "1.0.0-preview2-final"
}

これは、1つのプロジェクトを除くすべてで正常に機能しました。ツールのエントリをに変更しました

"tools": {
    "Microsoft.EntityFrameworkCore.Tools": {
    "version": "1.0.0-preview2-final",
    "type": "build"
  }
}

そして、実行しましたdotnet restore。復元が完了した後、Add-Migration正常に動作しました。


2

同じ問題が発生し、ソリューションファイルのVisualStudioのバージョン管理の問題であることがわかりました。

私がターゲットにしていた:

VisualStudioVersion = 14.0.25123.0

しかし、私はターゲットにする必要がありました:

VisualStudioVersion = 14.0.25420.1

ソリューションファイルに直接変更を加えた後、EFCoreコマンドレットがパッケージマネージャーコンソールで機能し始めました。


助けてくれてありがとう。私は14.0.25421.03 Update 3あなたが使用しているものよりもさらに高いバージョンを使用しています。
nam 2016

2

これらは私が従ったステップであり、それは問題を解決しました

1)PowerShellをバージョン2から3にアップグレードしました

2)PMコンソールを閉じました

3)VisualStudioを再起動しました

4)PM Console dotnetrestoreで以下のコマンドを実行しました

5)Add-Migration InitialMigration

出来た !!!


1

私はこの問題を抱えていましたが、以前の解決策はどれも役に立ちませんでした。私の問題は、実際にはWindows7マシンの古いバージョンのPowerShellが原因でした。PowerShell5に更新すると機能し始めました。


1

パッケージマネージャーコンソール(Visual Studio内)に移動し、以下のコマンドを実行します

C:\Users\<YOUR_USER>\.nuget\packages\Microsoft.EntityFrameworkCore.Tools\<YOUR_INSTALLED_VERSION>\tools\init.ps1


0

MSがここで詳述するいくつかの(重大な)変更を加えたので、答えは2017年に更新する必要があると思います。

https://github.com/aspnet/EntityFramework/issues/7053

要約すると、以下のようにツールセクションでEntityFrameWorkCore.Tools.DotNetへの参照が必要になります。

"Microsoft.EntityFrameworkCore.Tools.DotNet": "1.0.0"

また、問題が発生した場合に備えて、作業中のproject.jsonファイルを以下に投稿しました。

{
  "dependencies": {
    "Microsoft.NETCore.App": {
      "version": "1.0.1",
      "type": "platform"
    },
    "Microsoft.AspNetCore.Diagnostics": "1.0.0",
    "Microsoft.AspNetCore.Server.IISIntegration": "1.0.0",
    "Microsoft.AspNetCore.Server.Kestrel": "1.0.1",
    "Microsoft.Extensions.Logging.Console": "1.0.0",
    "Microsoft.AspNetCore.Razor.Tools": {
      "version": "1.0.0-preview2-final",
      "type": "build"
    },
    "Microsoft.AspNetCore.StaticFiles": "1.0.0",
    "Microsoft.AspNetCore.Mvc": "1.0.1",
    "Microsoft.EntityFrameworkCore.SqlServer": "1.0.1",
    "Microsoft.Extensions.Configuration.Json": "1.0.1",
    "Microsoft.EntityFrameworkCore.Tools": {
      "version": "1.0.0-preview2-final",
      "type": "build"
    }
  },

  "tools": {
    "Microsoft.AspNetCore.Server.IISIntegration.Tools": "1.0.0-preview2-final",
    "Microsoft.AspNetCore.Razor.Tools": "1.0.0-preview2-final",
    "Microsoft.EntityFrameworkCore.Tools": "1.0.0-preview2-final",
    "Microsoft.EntityFrameworkCore.Tools.DotNet": "1.0.0"
  },

  "frameworks": {
    "netcoreapp1.0": {
      "imports": [
        "dotnet5.6",
        "portable-net45+win8"
      ]
    }
  },

  "buildOptions": {
    "emitEntryPoint": true,
    "preserveCompilationContext": true
  },

  "runtimeOptions": {
    "configProperties": {
      "System.GC.Server": true
    }
  },

  "publishOptions": {
    "include": [
      "wwwroot",
      "web.config"
    ]
  },

  "scripts": {
    "postpublish": [ "dotnet publish-iis --publish-folder %publish:OutputPath% --framework %publish:FullTargetFramework%" ]
  }
}

おそらく、VisualStudioも再起動する必要があります。
フランシス

0

私は上記のすべてをやってみましたが、運がありませんでした。最新の.netcore 2.0パッケージをダウンロードしてコマンドを再度実行すると、機能しました。


.net core 2.0は現在安定しているので、プロジェクトをから1.1.1にアップグレードできます2.0か?
nam 2017

1
.NET Core 2.0は、2017年8月14日現在、最終リリースとして利用可能です。blogs.msdn.microsoft.com/dotnet/2017/08/14/…–
Tyrone

0

私の場合、Nugetを介して依存関係を追加しました。

Microsoft.EntityFrameworkCore.Tools

次に、パッケージマネージャーコンソールから実行します。

add-migration Initial -Context "ContextName" -StartupProject "EntryProject.Name" -Project "MigrationProject.Name"

0

これは私のために働いたものです:VisualStudioからクリックしてください

ツール-> NuGetパッケージマネージャー->パッケージマネージャーコンソール

ここに画像の説明を入力してください

次に、次のように実行できますAdd-Migration

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