dotnet ef not found in.NET Core 3
Śledzę dokumenty w celu utworzenia początkowej migracji. Kiedy wykonuję dotnet
, dostaję sekcję pomocy, co oznacza, że ścieżka działa poprawnie.
Następnie próbuję wykonać poniższe polecenie z docs w oknie konsoli:
dotnet ef migrations add InitialCreate
Dostaję następujący błąd:
Could not execute because the specified command or file was not found. Possible reasons for this include: * You misspelled a built-in dotnet command. * You intended to execute a .NET Core program, but dotnet-ef does not exist. * You intended to run a global tool, but a dotnet-prefixed executable with this name could not be found on the PATH.
- wyłączyłem pierwszy element od skopiowania polecenia.
- wykluczyłem drugą pozycję, ponieważ pakiet Microsoft.EntityFrameworkCore.SQLServer jest zainstalowany.
- wyłączyłem trzeci element, ponieważ dostaję sekcję pomocy podczas wywoływania dotnet.
Googluję problem, ale ponieważ wersja jest nowa, nie ma wiele do zrobienia i / lub tonie w podobnych problemach z wcześniejszych wersji.
Próbowałem siłą zainstalować Microsoft.EntityFrameworkCore na wypadek, gdyby trzeba było go wyraźnie dodać. Napotkałem komunikat o błędzie mówiąc mi, że najnowsza wersja do wyboru jest 2.2.6 i downgrade jest no-go. Nie jestem pewien, jak zainstalować wersję zgodną z pakietem SQL, który mam już na moim systemie (a tym bardziej nie jestem pewien, czy to właściwe podejście do zabicia tego problemu).
Wykryto downgrade pakietu: Microsoft.EntityFrameworkCore od 3.0.0-preview6.19304. 10 do 2.2.6. Odwołaj się do pakietu bezpośrednio z projektu, aby wybrać inną wersję.
Www - >
Microsoft.EntityFrameworkCore.SqlServer 3.0.0-preview6.19304.10 - >
Microsoft.EntityFrameworkCore.Relational 3.0.0-preview6.19304.10 - >
Microsoft.EntityFrameworkCore (>=3.0.0-preview6.19304.10)
Web - > Microsoft.EntityFrameworkCore (>=2.2.6)
8 answers
Zobacz ogłoszenie dla ASP.NET Core 3 Preview 4, co wyjaśnia, że to narzędzie nie jest już wbudowane i wymaga jawnej instalacji:
Narzędzie dotnet ef nie jest już częścią. Net Core SDK [12]}Ta zmiana pozwala nam wysyłać
dotnet ef
jako zwykłe narzędzie. NET CLI, które można zainstalować jako globalne lub lokalne narzędzie. Na przykład, aby móc zarządzać migracjami lub rusztowaniem aDbContext
, Zainstalujdotnet ef
jako narzędzie globalne, wpisując następujące polecenie:
dotnet tool install --global dotnet-ef
Aby zainstalować określoną wersję narzędzia, użyj następującego polecenia:
dotnet tool install --global dotnet-ef --version 3.1.4
Powód zmiany jest wyjaśniony w docs :
Dlaczego
Ta zmiana pozwala nam na dystrybucję i aktualizację
dotnet ef
jako zwykłego narzędzia. NET CLI na NuGet, zgodnie z faktem, że EF Core 3.0 jest również zawsze dystrybuowany jako pakiet NuGet.
Ponadto może być konieczne dodanie następujących pakietów NuGet do twojego projekt:
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2020-06-01 11:44:12
EDIT: jeśli używasz pliku Dokerowego do wdrożeń, są to kroki, które musisz podjąć, aby rozwiązać ten problem.
Zmień plik Dockerfile na:
FROM mcr.microsoft.com/dotnet/core/sdk:3.1 AS build-env
ENV PATH $PATH:/root/.dotnet/tools
RUN dotnet tool install -g dotnet-ef --version 3.1.1
Również zmień swoje dotnet ef
polecenia na dotnet-ef
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2020-06-04 18:45:04
Narzędzia globalne można zainstalować w domyślnym katalogu lub w miejsce. Domyślne katalogi to:
Linux / macOS - - - > $HOME/.dotnet / tools
Windows - - - > % USERPROFILE%\.dotnet\tools
Jeśli próbujesz uruchomić narzędzie globalne, sprawdź, czy zmienna środowiskowa PATH na twoim komputerze zawiera ścieżkę, w której zainstalowano narzędzie globalne i czy plik wykonywalny znajduje się w tym / align = "left" /
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2020-03-30 19:36:42
Uruchom PowerShell lub wiersz polecenia jako Administrator i uruchom poniżej polecenia.
Dotnet tool install --global dotnet-ef --version 3.1.3
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2020-04-23 18:17:06
Dla wszystkich korzystających z. NET Core CLI na MinGW MSYS. Po zainstalowaniu za pomocą
dotnet tool install --global dotnet-ef
Dodaj tę linię do pliku bashrc c:\msys64\home\username\ .bashrc (lokalizacja zależy od konfiguracji)
export PATH=$PATH:/c/Users/username/.dotnet/tools
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2020-10-22 07:13:34
Miałem ten sam problem. Rozwiązałem, odinstalowanie wszystkich wersji de w moim komputerze, a następnie ponownie zainstalować dotnet.
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2020-02-25 15:25:25
Jeśli używasz pakietu snap dotnet-sdk na Linuksie, może to rozwiązać poprzez aktualizację ~.bashrc / etc. jak następuje:
#!/bin/bash
export DOTNET_ROOT=/snap/dotnet-sdk/current
export MSBuildSDKsPath=$DOTNET_ROOT/sdk/$(${DOTNET_ROOT}/dotnet --version)/Sdks
export PATH="${PATH}:${DOTNET_ROOT}"
export PATH="$PATH:$HOME/.dotnet/tools"
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2020-06-10 05:24:38
Dla mnie problem został rozwiązany po zamknięciu Visual Studio i ponownym otwarciu
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2020-07-22 09:08:12