web-dev-qa-db-ja.com

「Add-Migration」という用語は認識されません

私はこれを使用しています MSDNチュートリアル VS2015で昨日正常に実行されたコマンドPM> Add-Migration MyFirstMigration -context BloggingContextを実行しますが、今日は他のユーザーからも指摘されている次のエラーを与えています ここ 。ソリューションエクスプローラーからMigrationsフォルダーを削除し、SQL Express 2014 on Win 8.1から対応するdbを削除しましたが、同じエラーがありました。 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 Core 1.0およびVS2015-Update 3の最新バージョンを使用しています。

UPDATE

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

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

UPDATE 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%" ]
  }
}
40
nam

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

1)project.jsonファイルを開き、RemovedependenciesおよびtoolsセクションからのすべてのMicrosoft.EntityFrameworkCore.Tools参照。

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

3)Adddependenciesセクションの下:

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

4)追加の下でtoolsセクション

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

5)再起動 Visual Studio 2015

6)OpenPMCおよびタイプ

Add-Migration $Your_First_Migration_Name$

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

39
Gianpolo

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

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

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

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

vSを閉じる前にPM Managerを閉じることがトリックのようです

11
Bhail

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

8
Josh

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

In 依存関係

小切手:

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

このセクション:

「バージョン」:「1.0.0-preview2-final」、

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

その後、proj.jsonの2番目のセクションは、ToolsJSONセクションにあります。

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

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

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

6

とても簡単です。

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

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

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

5

しなければならないこと...

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

2)一般タブ

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

4)Visual Studioを再起動します

5

Visual Studio 2013でこの問題が発生しました。NuGetパッケージマネージャーを再インストールしました。

https://marketplace.visualstudio.com/items?itemName=NuGetTeam.NuGetPackageManagerforVisualStudio201

5
David Sopko

Init Microsoft.EntityFrameworkCore.Toolsを試してください。 PMで実行

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

同じ問題を解決してくれました。ツールのバージョンは異なる場合があります。プロジェクトで使用するものに依存します。

4
trueboroda

私は同じ問題を抱えていましたが、それはソリューションファイルのVisual Studioのバージョン管理の問題であることがわかりました。

狙っていた:

VisualStudioVersion = 14.0.25123.0

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

VisualStudioVersion = 14.0.25420.1

ソリューションファイルに直接変更を加えた後、EF Coreコマンドレットはパッケージマネージャーコンソールで動作を開始しました。

2
Joel Waymack

私は同じ問題に遭遇しました。私のプロジェクトのほとんどは、ツールに同じものがありました。

"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
smulholland2

私はこの問題を抱えていましたが、以前の解決策はどれも私を助けませんでした。私の問題は、実際にはWindows 7マシンの古いバージョンのPowerShellが原因でした。PowerShell5にアップデートすると動作し始めました。

1
Lee Cordell

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

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

1
Shivendra

これらは私が従った手順であり、問​​題を解決しました

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

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

3)Visual Studioの再起動

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

5)Add-Migration InitialMigration

動いた !!!

1
Karthik

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

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

要約するには、次のように、Toolsセクションで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%" ]
  }
}
0
Francis

上記のすべてを試してみましたが、運はありませんでした。最新の.netコア2.0パッケージをダウンロードし、コマンドを再度実行すると動作しました。

0
Tyrone Moodley