Reputation: 23753
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%" ]
}
}
Upvotes: 292
Views: 389745
Reputation: 202
Now the command worked.
Upvotes: 0
Reputation: 787
This work for me, first, install EntityFrameworkCore Tool using Package Manager Console
dotnet add package Microsoft.EntityFrameworkCore.Tools --version 7.0.5
second, to select Microsoft Visual Studio Offline in the package source section
Third, run via Package Manager Console
Add-Migration InitialDatabase
Upvotes: 0
Reputation: 701
These are the steps I followed and it solved the problem
dotnet restore
Add-Migration InitialMigration
It worked !!!
Upvotes: 3
Reputation: 69
What I had to do...
Upvotes: 6
Reputation: 740
Same issue; resolved by doing the following:
Seems the trick is to close PM Manager before closing VS
Upvotes: 19
Reputation: 986
Try the following steps:
Open project.json
file and Remove all Microsoft.EntityFrameworkCore.Tools
references from dependencies and tools sections.
Close Package Manager Console (PMC) and restart Visual Studio.
Add under dependencies section:
"Microsoft.EntityFrameworkCore.Tools": {
"version": "1.0.0-preview2-final",
"type": "build"
}
Add under tools section:
"Microsoft.EntityFrameworkCore.Tools": "1.0.0-preview2-final"
Restart again Visual Studio 2015.
Open the PMC and type:
Add-Migration $Your_First_Migration_Name$
This happen because the PMC recognize the tools when Visual Studio is starting.
Upvotes: 57
Reputation: 6453
Just install Microsoft.EntityFrameworkCore.Tools
package from nuget:
Install-Package Microsoft.EntityFrameworkCore.Tools -Version 7.0.7
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.
Upvotes: 595
Reputation: 12338
I am blinded, but i tried to do it in "Developer Powershell", but need to open "Package Manager Console" instead and choose project, where your migrations located. Also, set project as an active by "Set as startup Project" in context menu of Solution Explorer.
Also, be sure you are setting connection string to your command. Otherwise, you need to add your connection to you Machine Environment Variables.
It is in case you are specifying it in you DbContext :
protected override void OnConfiguring(DbContextOptionsBuilder optionsBuilder)
{
optionsBuilder.UseNpgsql("MyConnectionStringName");
}
So "MyConnectionStringName" should be set there as an environment variable name, and value - your connection string.
Hope, will help someone
Upvotes: 1
Reputation: 1173
Solution had been working fine for me and then stopped. After a little messing about I:
Upvotes: 2
Reputation: 47
Try to Install these Packages:
EntityFrameworkCore.Tools
EntityFrameworkCore.Design
Upvotes: 2
Reputation: 606
From Asp.Net Core 5.0 perspective
In the Migrations project Install the following:
In the Startup/Api project Install the following:
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")));
Upvotes: 19
Reputation: 661
Mine was a very silly mistake!
Solution:
Upvotes: -4
Reputation: 989
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
(Ps: Visual Studio 2019 .netCore 5)
Upvotes: 1
Reputation: 749
This is what worked for me: From Visual Studio click on
Tools --> NuGet Package Manager --> Package Manager Console
Then you can run Add-Migration
, for example:
Add-Migration InitialCreate
Upvotes: 15
Reputation: 5383
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"
Upvotes: 4
Reputation: 1212
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.
Upvotes: 9
Reputation: 3460
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.
Upvotes: 1
Reputation: 159
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
Upvotes: 1
Reputation: 1904
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%" ]
}
}
Upvotes: 1
Reputation: 2880
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.
Upvotes: 7
Reputation: 7405
I just had this problem too. I closed and opened VS2015 and it "fixed" the issue...
Upvotes: 12
Reputation: 5623
I had this problem in Visual Studio 2013. I reinstalled NuGet Package Manager:
https://marketplace.visualstudio.com/items?itemName=NuGetTeam.NuGetPackageManagerforVisualStudio2013
Upvotes: 5
Reputation: 276
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.
Upvotes: 1
Reputation: 1163
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.
Upvotes: 4
Reputation: 136
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.
Upvotes: 2
Reputation: 30345
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"
}
}
}
Upvotes: 54