Ich verwende dieses MSDN-Tutorial , um in VS2015 den Befehl auszuführen PM> Add-Migration MyFirstMigration -context BloggingContext
, der gestern erfolgreich ausgeführt wurde, aber heute wird der folgende Fehler ausgegeben, auf den auch andere Benutzer hier hinweisen . Ich habe sogar den Migrationsordner aus dem Solution Explorer und die entsprechende Datenbank aus SQL Express 2014 on Win 8.1
demselben Fehler gelöscht . Selbst wenn ich laufe, Add-Migration MyFirstMigration
erhalte ich den gleichen Fehler:
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
Hinweis : Ich verwende die neueste Version von ASP.NET Core 1.0 und VS2015 - Update 3, die am 27. Juni 2016 veröffentlicht wurde.
AKTUALISIEREN
Die folgenden Befehle funktionieren im Projektverzeichnis im Windows Explorer einwandfrei, wenn Sie das Befehlsfenster verwenden:
> dotnet ef migrations add MyFirstMigration --context BloggingContext
> dotnet ef database update --context BloggingContext
UPDATE 2a
Es folgt die Datei 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%" ]
}
}
@bricelam
. Was kann mir fehlen?Antworten:
Es ist so einfach.
Installieren Sie einfach das
Microsoft.EntityFrameworkCore.Tools
Paket von Nuget:Über diesen Link können Sie auch die neueste Version installieren: Nuget-Paketlink
quelle
Versuchen Sie die folgenden Schritte:
1) Öffnen Sie die
project.json
Datei und entfernen Sie alle Microsoft.EntityFrameworkCore.Tools-Referenzen aus den Abschnitten zu Abhängigkeiten und Tools .2) Schließen Sie die Package Manager Console ( PMC ) und starten Sie Visual Studio neu
3) Fügen Sie unter Abhängigkeiten hinzu :
4) In unter Tools Abschnitt
5) Starten Sie Visual Studio 2015 erneut
6) Öffnen Sie das PMC und geben Sie ein
Dies liegt daran, dass die PMC die Tools erkennt, wenn Visual Studio gestartet wird.
quelle
Stellen Sie sicher, dass
Microsoft.EntityFrameworkCore.Tools
imdependencies
Abschnitt Ihresproject.json
. NuGet lädt die Package Manager-Befehle nicht aus demtools
Abschnitt. (Siehe NuGet / Home # 3023 )quelle
Microsoft.EntityFrameworkCore.Tools
Abschnitt befindet sich ebenfalls innerhalb der Abhängigkeiten. Die BefehleAdd-Migration
undUpdate-Database
, wie im Tutorial beschrieben, funktionierten am Abend zuvor. Aber als ich sie am nächsten Morgen versuchte, nachdem ich kleinere Änderungen an meinem Modell vorgenommen und diese Befehle erneut versucht hatte, gaben sie die in meinem Beitrag beschriebene Fehlermeldung aus. Ich habe sogar den Migrationsordner und die entsprechende Datenbank vom SQL Server gelöscht, aber nach dem Ausführen dieser Befehle wurde dieselbe Fehlermeldung angezeigt. Was kann mir fehlen?tools
und danach wieder hinzufüge. Wenn Sie es einfach nach verschieben,dependencies
wird die folgende Fehlermeldung angezeigt: Dieser Befehl kann nicht ausgeführt werden, da 'Microsoft.EntityFrameworkCore.Tools' nicht im Projekt 'src \ <Ihr Projekt> installiert ist. Fügen Sie 'Microsoft.EntityFrameworkCore.Tools' zum Abschnitt 'tools' in project.json hinzu. Weitere Informationen finden Sie unter go.microsoft.com/fwlink/?LinkId=798221 .gleiches Problem ... gelöst durch dong das folgende
1.) PM-Manager schließen 2.) Visual Studio schließen 3.) Visual Studio öffnen 4.) PM-Manager öffnen
Der Trick scheint darin zu bestehen, PM Manager vor dem Schließen von VS zu schließen
quelle
Sie müssen wissen, was Ihre
Entity-Framework
Version ist. Auch danach müssen Sieproject.json
diese Abschnitte überprüfen und kontrollieren:In Abhängigkeiten
prüfen:
Diese Abteilung:
hängt mit deiner Version zusammen
Entity-Framework
und du musst dies damit ändern.Danach ist der zweite Abschnitt von
proj.json
hier, In demTools
Abschnitt von habenJSON
Sie:Auch dieser Teil des Codes bezieht sich auf Ihren
Entity-Framework
und den letzten Teil des Codes im Abschnitt Abhängigkeiten .Hinweis: Nach diesen Problemen sollten Sie
CMD
Visual Studio schließen und neu starten.quelle
Ich hatte gerade auch dieses Problem. Ich habe VS2015 geschlossen und geöffnet und das Problem wurde "behoben" ...
quelle
Was ich tun musste ...
1) Tools -> Nuget Package Manager -> Package Manager-Einstellungen
2) Registerkarte Allgemein
3) Löschen Sie alle NuGet-Caches.
4) Starten Sie Visual Studio neu
quelle
Ich hatte dieses Problem in Visual Studio 2013. Ich habe NuGet Package Manager neu installiert:
https://marketplace.visualstudio.com/items?itemName=NuGetTeam.NuGetPackageManagerforVisualStudio2013
quelle
Versuchen Sie einfach init Microsoft.EntityFrameworkCore.Tools. In PM ausführen
Es hat mir bei dem gleichen Problem geholfen. Eine Version der Tools kann anders sein. Es hängt davon ab, was Sie in Ihrem Projekt verwenden.
quelle
Ich bin auf das gleiche Problem gestoßen. Die meisten meiner Projekte hatten das gleiche Werkzeug.
Dies funktionierte bis auf ein Projekt einwandfrei. Ich habe den Eintrag in tools in geändert
Und dann rannte
dotnet restore
. Nach Abschluss der WiederherstellungAdd-Migration
funktionierte normal.quelle
Ich hatte das gleiche Problem und stellte fest, dass es sich um ein Visual Studio-Versionsproblem in der Lösungsdatei handelte.
Ich zielte auf:
VisualStudioVersion = 14.0.25123.0
Aber ich musste zielen:
VisualStudioVersion = 14.0.25420.1
Nachdem diese Änderung direkt an der Lösungsdatei vorgenommen wurde, begannen EF Core-Cmdlets in der Package Manager-Konsole zu arbeiten.
quelle
14.0.25421.03 Update 3
, die noch höher ist als die, die Sie verwenden.Dies sind die Schritte, die ich befolgt habe und die das Problem gelöst haben
1) Meine Power Shell wurde von Version 2 auf 3 aktualisiert
2) Die PM-Konsole geschlossen
3) Visual Studio neu gestartet
4) Führen Sie den folgenden Befehl in der PM Console-Dotnet-Wiederherstellung aus
5) Add-Migration InitialMigration
Es funktionierte !!!
quelle
Ich hatte dieses Problem und keine der vorherigen Lösungen hat mir geholfen. Mein Problem war tatsächlich auf eine veraltete Version von Powershell auf meinem Windows 7-Computer zurückzuführen. Sobald ich auf Powershell 5 aktualisiert hatte, funktionierte es.
quelle
Gehen Sie zur Paketmanager-Konsole (in Visual Studio) und führen Sie den folgenden Befehl aus
quelle
Ich denke, die Antwort muss 2017 aktualisiert werden, da die MS einige (wichtige) Änderungen vorgenommen haben, die hier detailliert beschrieben werden.
https://github.com/aspnet/EntityFramework/issues/7053
Zusammenfassend benötigen Sie jetzt einen Verweis auf EntityFrameWorkCore.Tools.DotNet im Abschnitt Tools (siehe unten)
"Microsoft.EntityFrameworkCore.Tools.DotNet": "1.0.0"
Ich habe auch eine funktionierende project.json-Datei unten veröffentlicht, falls jemand Probleme hat.
quelle
Ich habe versucht, all das zu tun und kein Glück. Ich habe das neueste .net Core 2.0-Paket heruntergeladen und die Befehle erneut ausgeführt, und es hat funktioniert.
quelle
1.1.1
um2.0
?In meinem Fall habe ich die Abhängigkeit über Nuget hinzugefügt:
Microsoft.EntityFrameworkCore.Tools
Und dann über die Package Manager-Konsole ausführen:
quelle
Folgendes hat bei mir funktioniert: Klicken Sie in Visual Studio auf
Dann können Sie
Add-Migration
zum Beispiel ausführen :quelle