The term "Add-Migration" is not recognized

Visual Studio-2015asp.net CoreEntity Framework-Core

Visual Studio-2015 Problem Overview


I'm using this MSDN Tutorial to run in VS2015 the command PM> Add-Migration MyFirstMigration -context BloggingContext that ran yesterday successfully but today it's giving the following error that is also pointed out by other users here. I even deleted the Migrations folder from solution explorer and the corresponding db from SQL Express 2014 on Win 8.1 but same error. Even if I run Add-Migration MyFirstMigration I get same error:

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

Note: I'm using latest version of ASP.NET Core 1.0 and VS2015 - Update 3 released on June 27, 2016.

UPDATE

The following commands work fine from the project directory in the windows explorer when using command window:

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

UPDATE 2a

Following is the project.json file:

{
  "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%" ]
  }
}

Visual Studio-2015 Solutions


Solution 1 - Visual Studio-2015

Just install Microsoft.EntityFrameworkCore.Tools package from nuget:

> Install-Package Microsoft.EntityFrameworkCore.Tools -Version 6.0.3

You can also use this link to install the latest version: NuGet package link

.NET CLI command:

dotnet add package Microsoft.EntityFrameworkCore.Tools

If the problem still persists, try restarting Visual Studio.

Solution 2 - Visual Studio-2015

Try the following steps:

  1. Open project.json file and Remove all Microsoft.EntityFrameworkCore.Tools references from dependencies and tools sections.

  2. Close Package Manager Console (PMC) and restart Visual Studio

  3. Add under dependencies section:

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

  4. Add under tools section

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

  5. Restart again Visual Studio 2015

  6. Open the PMC and type

    Add-Migration $Your_First_Migration_Name$

This happen because the PMC recognize the tools when Visual Studio is starting.

Solution 3 - Visual Studio-2015

Ensure Microsoft.EntityFrameworkCore.Tools is referenced in the dependencies section of your project.json. NuGet won't load the Package Manager Commands from the tools section. (See NuGet/Home#3023)

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

Solution 4 - Visual Studio-2015

same issue...resolved by dong the following

1.) close pm manager 2.) close Visual Studio 3.) Open Visual Studio 4.) Open pm manager

seems the trick is to close PM Manager before closing VS

Solution 5 - Visual Studio-2015

From Asp.Net Core 5.0 perspective

In the Migrations project Install the following: NuGets to be installed in Migrations project

  • Add a reference to Data Access Layer (DAL) project (ex: if there is reference to Auth models)

In the Startup/Api project Install the following: NuGets to be installed in startup/Api project

  • Add a reference to your Migrations project.
  • Add a reference to the Data Access Layer (DAL) project if you have one.

Ensure that you have added DbContext derived type to the services collection by using following line of code in Startup.ConfigureServices(IServiceCollection services):

services.AddDbContext<YourDbContext>(options => 
                  options.UseSqlServer(Configuration.GetConnectionString("YourDb"),
                                      x=>x.MigrationsAssembly("Your.Migrations")));

Solution 6 - Visual Studio-2015

I just had this problem too. I closed and opened VS2015 and it "fixed" the issue...

Solution 7 - Visual Studio-2015

You have to know what is your Entity-Framework version. Also after that you have to check project.json and control these sections:

In Dependencies

check:

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

This section:

> "version": "1.0.0-preview2-final",

is related with version of your Entity-Framework and you have to change this with that.

After that the second section of the proj.json is here, In the Tools section of JSON you have:

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

Also this part of code is related with your Entity-Framework and last part of code in Dependencies section.

Note: After do this issues you should to close CMD and restart visual studio.

Solution 8 - Visual Studio-2015

​What I had to do...

  1. Tools -> Nuget Package Manger -> Package Manager Settings

  2. General Tab

  3. Clear All NuGet Cache(s)

  4. Restart Visual Studio

Solution 9 - Visual Studio-2015

Just try init Microsoft.EntityFrameworkCore.Tools. In PM execute

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

It helped me with the same problem. A version of the tools might be different. It`s depended of what you use in your project.

Solution 10 - Visual Studio-2015

I had this problem in Visual Studio 2013. I reinstalled NuGet Package Manager:

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

Solution 11 - Visual Studio-2015

This is what worked for me: From Visual Studio click on

> Tools --> NuGet Package Manager --> Package Manager Console

enter image description here

Then you can run Add-Migration, for example:

Add-Migration InitialCreate

Solution 12 - Visual Studio-2015

I ran into the same issue. Most of my projects had the same thing in tools.

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

This worked fine on all but one project. I changed the entry in tools to

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

And then ran dotnet restore. After the restore completed, Add-Migration worked normally.

Solution 13 - Visual Studio-2015

These are the steps I followed and it solved the problem

1)Upgraded my Power shell from version 2 to 3

2)Closed the PM Console

3)Restarted Visual Studio

4)Ran the below command in PM Console dotnet restore

5)Add-Migration InitialMigration

It worked !!!

Solution 14 - Visual Studio-2015

In my case I added dependency via Nuget:

Microsoft.EntityFrameworkCore.Tools

And then run via Package Manager Console:

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

Solution 15 - Visual Studio-2015

I had the same problem and found that it was a Visual Studio versioning problem in the Solution file.

I was targeting:

VisualStudioVersion = 14.0.25123.0

But I needed to target:

VisualStudioVersion = 14.0.25420.1

After making that change directly to the Solution file, EF Core cmdlets started working in the Package Manager Console.

Solution 16 - Visual Studio-2015

I had this problem and none of the previous solutions helped me. My problem was actually due to an outdated version of powershell on my Windows 7 machine - once I updated to powershell 5 it started working.

Solution 17 - Visual Studio-2015

I think the answer needs updating in 2017, as MS have made some (breaking) changes that is detailed here.

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

To summarise, you will now need a reference to EntityFrameWorkCore.Tools.DotNet in the Tools Section as below

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

I have also posted a working project.json file below in case some one runs in problems.

{
  "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%" ]
  }
}

Solution 18 - Visual Studio-2015

Go to package manager console(in visual studio) and execute below command

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

Solution 19 - Visual Studio-2015

I tried doing all the above and no luck. I downloaded the latest .net core 2.0 package and ran the commands again and it worked.

Solution 20 - Visual Studio-2015

In my case there was an error in the solution which did not occur to me. I Tried rebuilding but did not worked. Here is what you should do

  • Close Visual Studio And Reopen.
  • Clean The Solution and Build it again.
  • It will show the error in the solution.
  • Resolve the error and Try again.

(Ps: Visual Studio 2019 .netCore 5)

Solution 21 - Visual Studio-2015

Try to Install these Packages:

  1. EntityFrameworkCore.Tools

  2. EntityFrameworkCore.Design

Solution 22 - Visual Studio-2015

Solution had been working fine for me and then stopped. After a little messing about I:

  1. Cleaned Solution

  2. Closed the solution and reopened

  3. Went straight to Package Manager Console and ran add-migration MigrationName

Solution 23 - Visual Studio-2015

Mine was a very silly mistake!

Solution:

  • Re-open Visual Studio and Clone repo.
  • Don't forget to double-click solution file to load it.

Attributions

All content for this solution is sourced from the original question on Stackoverflow.

The content on this page is licensed under the Attribution-ShareAlike 4.0 International (CC BY-SA 4.0) license.

Content TypeOriginal AuthorOriginal Content on Stackoverflow
QuestionnamView Question on Stackoverflow
Solution 1 - Visual Studio-2015Nasir JafarzadehView Answer on Stackoverflow
Solution 2 - Visual Studio-2015GianpoloView Answer on Stackoverflow
Solution 3 - Visual Studio-2015bricelamView Answer on Stackoverflow
Solution 4 - Visual Studio-2015BhailView Answer on Stackoverflow
Solution 5 - Visual Studio-2015SharathView Answer on Stackoverflow
Solution 6 - Visual Studio-2015JoshView Answer on Stackoverflow
Solution 7 - Visual Studio-2015AmirReza-FarahlaghaView Answer on Stackoverflow
Solution 8 - Visual Studio-2015Justin McConnellView Answer on Stackoverflow
Solution 9 - Visual Studio-2015trueborodaView Answer on Stackoverflow
Solution 10 - Visual Studio-2015David SopkoView Answer on Stackoverflow
Solution 11 - Visual Studio-2015SeifView Answer on Stackoverflow
Solution 12 - Visual Studio-2015smulholland2View Answer on Stackoverflow
Solution 13 - Visual Studio-2015KarthikView Answer on Stackoverflow
Solution 14 - Visual Studio-2015Erçin DedeoğluView Answer on Stackoverflow
Solution 15 - Visual Studio-2015Joel WaymackView Answer on Stackoverflow
Solution 16 - Visual Studio-2015Lee CordellView Answer on Stackoverflow
Solution 17 - Visual Studio-2015FrancisView Answer on Stackoverflow
Solution 18 - Visual Studio-2015ShivendraView Answer on Stackoverflow
Solution 19 - Visual Studio-2015Tyrone MoodleyView Answer on Stackoverflow
Solution 20 - Visual Studio-2015raw_hittView Answer on Stackoverflow
Solution 21 - Visual Studio-2015Rovid kashyapView Answer on Stackoverflow
Solution 22 - Visual Studio-2015CF5View Answer on Stackoverflow
Solution 23 - Visual Studio-2015DMurView Answer on Stackoverflow