Używam tego samouczka MSDN, aby uruchomić w VS2015 polecenie, PM> Add-Migration MyFirstMigration -context BloggingContext
które zostało pomyślnie uruchomione wczoraj, ale dziś daje następujący błąd, który jest również wskazywany przez innych użytkowników tutaj . Usunąłem nawet folder Migracje z eksploratora rozwiązań i odpowiednią bazę danych z, SQL Express 2014 on Win 8.1
ale ten sam błąd. Nawet jeśli uruchomię, Add-Migration MyFirstMigration
pojawia się ten sam błąd:
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
Uwaga : używam najnowszej wersji ASP.NET Core 1.0 i VS2015 - aktualizacja 3 wydana 27 czerwca 2016 r.
AKTUALIZACJA
Następujące polecenia działają poprawnie z katalogu projektu w eksploratorze Windows podczas korzystania z okna poleceń:
> dotnet ef migrations add MyFirstMigration --context BloggingContext
> dotnet ef database update --context BloggingContext
AKTUALIZACJA 2a
Poniżej znajduje się plik 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
. Czego może mi brakować?Odpowiedzi:
To takie proste.
Po prostu zainstaluj
Microsoft.EntityFrameworkCore.Tools
pakiet z nuget:Możesz również użyć tego linku, aby zainstalować najnowszą wersję: łącze do pakietu NuGet
Polecenie .NET CLI:
źródło
Spróbuj wykonać następujące czynności:
1) Otwórz
project.json
plik i usuń wszystkie odniesienia Microsoft.EntityFrameworkCore.Tools z sekcji zależności i narzędzi .2) Zamknij konsolę Menedżera pakietów ( PMC ) i uruchom ponownie program Visual Studio
3) Dodaj w sekcji zależności :
4) Dodaj ramach narzędzi sekcji
5) Uruchom ponownie program Visual Studio 2015
6) Otwarty PMC i typ
Dzieje się tak, ponieważ PMC rozpoznaje narzędzia podczas uruchamiania programu Visual Studio.
źródło
Upewnij
Microsoft.EntityFrameworkCore.Tools
się, że odwołanie znajduje się wdependencies
sekcji twojegoproject.json
. NuGet nie załaduje poleceń Menedżera pakietów ztools
sekcji. (Zobacz NuGet / Home # 3023 ){ "dependencies": { "Microsoft.EntityFrameworkCore.Tools": { "version": "1.0.0-preview2-final", "type": "build" } } }
źródło
Microsoft.EntityFrameworkCore.Tools
jest również wewnątrz zależności. TeAdd-Migration
iUpdate-Database
poleceń, zgodnie z instrukcjami w tutorialu pracował nocy. Ale kiedy wypróbowałem je następnego ranka po wprowadzeniu drobnych zmian w moim modelu i spróbowałem ponownie tych poleceń, dały komunikat o błędzie opisany w moim poście. Usunąłem nawet folder migracji i odpowiednią bazę danych z serwera SQL, ale po uruchomieniu tych poleceń otrzymałem ten sam komunikat o błędzie. Czego może mi brakować?tools
i ponownie dodam po. Po prostu przeniesienie go dodependencies
spowoduje wyświetlenie następującego komunikatu o błędzie: Nie można wykonać tego polecenia, ponieważ „Microsoft.EntityFrameworkCore.Tools” nie jest zainstalowany w projekcie „src \ <your project>”. Dodaj „Microsoft.EntityFrameworkCore.Tools” do sekcji „narzędzia” w pliku project.json. Więcej informacji można znaleźć na stronie go.microsoft.com/fwlink/?LinkId=798221 .ten sam problem ... rozwiązany przez dong następujący
1.) Zamknij menedżera pm 2.) Zamknij program Visual Studio 3.) Otwórz program Visual Studio 4.) Otwórz menedżera pm
wydaje się, że cała sztuka polega na zamknięciu PM Managera przed zamknięciem VS
źródło
Ja też miałem ten problem. Zamknąłem i otworzyłem VS2015 i "naprawiłem" problem ...
źródło
Musisz wiedzieć, jaka jest twoja
Entity-Framework
wersja. Następnie musisz sprawdzićproject.json
i kontrolować te sekcje:W zależnościach
czek:
Ta sekcja:
jest powiązany z twoją wersją
Entity-Framework
i musisz to zmienić.Po tym druga sekcja
proj.json
jest tutaj, W tejTools
sekcjiJSON
masz:Również ta część kodu jest związana z Twoją
Entity-Framework
i ostatnią częścią kodu w sekcji Zależności .Uwaga: po wykonaniu tej czynności należy zamknąć
CMD
i ponownie uruchomić program Visual Studio.źródło
Co musiałem zrobić ...
1) Narzędzia -> Menedżer pakietów Nuget -> Ustawienia menedżera pakietów
2) Zakładka Ogólne
3) Wyczyść wszystkie pamięci podręczne NuGet
4) Uruchom ponownie program Visual Studio
źródło
Miałem ten problem w Visual Studio 2013. Ponownie zainstalowałem Menedżera pakietów NuGet:
https://marketplace.visualstudio.com/items?itemName=NuGetTeam.NuGetPackageManagerforVisualStudio2013
źródło
Po prostu spróbuj uruchomić Microsoft.EntityFrameworkCore.Tools. W PM wykonaj
Pomogło mi to z tym samym problemem. Wersja narzędzi może być inna. Zależy to od tego, czego użyjesz w swoim projekcie.
źródło
Napotkałem ten sam problem. Większość moich projektów zawierała te same narzędzia.
To działało dobrze we wszystkich projektach oprócz jednego. Zmieniłem wpis w narzędziach na
A potem uciekł
dotnet restore
. Po zakończeniu przywracaniaAdd-Migration
działał normalnie.źródło
Miałem ten sam problem i stwierdziłem, że był to problem z wersjonowaniem programu Visual Studio w pliku rozwiązania.
Miałem na celu:
VisualStudioVersion = 14.0.25123.0
Ale musiałem celować w:
VisualStudioVersion = 14.0.25420.1
Po wprowadzeniu tej zmiany bezpośrednio w pliku rozwiązania polecenia cmdlet EF Core zaczęły działać w konsoli Menedżera pakietów.
źródło
14.0.25421.03 Update 3
która jest jeszcze wyższa niż ta, której używasz.Oto kroki, które wykonałem i rozwiązało problem
1) Zaktualizowałem moją powłokę Power z wersji 2 do 3
2) Zamknięto konsolę PM
3) Ponownie uruchomiono program Visual Studio
4) Uruchomiono poniższe polecenie w przywracaniu dotnet konsoli PM
5) Add-Migration InitialMigration
Zadziałało !!!
źródło
Miałem ten problem i żadne z poprzednich rozwiązań mi nie pomogło. Mój problem był w rzeczywistości spowodowany przestarzałą wersją programu PowerShell na moim komputerze z systemem Windows 7 - po aktualizacji do programu PowerShell 5 zaczął działać.
źródło
Przejdź do konsoli menedżera pakietów (w programie Visual Studio) i wykonaj poniższe polecenie
źródło
Myślę, że odpowiedź wymaga aktualizacji w 2017 r., Ponieważ MS wprowadziło pewne (przełomowe) zmiany, które są szczegółowo opisane tutaj.
https://github.com/aspnet/EntityFramework/issues/7053
Podsumowując, będziesz teraz potrzebować odniesienia do EntityFrameWorkCore.Tools.DotNet w sekcji Narzędzia, jak poniżej
„Microsoft.EntityFrameworkCore.Tools.DotNet”: „1.0.0”
Opublikowałem również działający plik project.json poniżej na wypadek, gdyby ktoś miał problemy.
źródło
Próbowałem zrobić wszystko powyżej i bez powodzenia. Pobrałem najnowszy pakiet .net core 2.0 i uruchomiłem ponownie polecenia i zadziałało.
źródło
1.1.1
do2.0
?W moim przypadku dodałem zależność przez Nuget:
Microsoft.EntityFrameworkCore.Tools
Następnie uruchom za pomocą konsoli Menedżera pakietów:
źródło
Oto, co zadziałało dla mnie: w programie Visual Studio kliknij
Następnie możesz biegać
Add-Migration
np .:źródło