Esta duda se puede resolver de diversas formas, sin embargo te mostramos la que para nosotros es la resolución más completa.
Solución:
En mi caso, la carpeta de herramientas no existía dentro %USERPROFILE%.dotnet
así que tuve que ejecutar el comando dotnet tool install --global dotnet-ef
para instalar dotnet ef. Luego pude ejecutar dotnet ef…
Este fue el resultado del comando de instalación anterior:
Nota para los lectores: si no ha instalado dotnet ef
, necesitas instalarlo primero: dotnet tool install --global dotnet-ef
. El que hizo la pregunta ya lo hizo. Debe hacer eso primero antes de que el resto de esta respuesta pueda ayudar.
Cómo arreglar esto
Para linux y Mac OS, agregue una línea a la configuración de su shell:
-
bash
/zsh
:export PATH="$PATH:$HOME/.dotnet/tools/"
-
csh
/tcsh
:set path = ($path $HOME/.dotnet/tools/)
Cuando inicie un nuevo shell/terminal (o la próxima vez que inicie sesión) dotnet ef
Deberia trabajar.
Para ventanas:
Vea esta pregunta sobre cómo agregar a la PATH
Variable ambiental.
Necesitas agregar %USERPROFILE%.dotnettools
al PATH
.
¿Que esta pasando?
La versión de .NET Core 3.0 (vista previa) de esta falla es mucho más esclarecedora:
$ dotnet ef
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.
El segundo y el tercero se refieren a dotnet
tratando de encontrar un dotnet-ef
comando pero no puedo encontrarlo. Como dice el tercer punto, dotnet-ef
no está en tu camino.
Esto es lo que dicen los documentos:
Las herramientas globales se pueden instalar en el directorio predeterminado o en una ubicación específica. Los directorios predeterminados son:
OS Path
Linux/macOS $HOME/.dotnet/tools
Windows %USERPROFILE%.dotnettools
Por lo tanto, debe agregar $HOME/.dotnet/tools/
para usted $PATH
.
Pero también tenga en cuenta esta parte de los documentos:
Estas ubicaciones se agregan a la ruta del usuario cuando se ejecuta el SDK por primera vez, por lo que las herramientas globales instaladas allí se pueden llamar directamente.
Entonces, parece que algo salió mal. Si instaló utilizando un tarball manual, el SDK se equivocó y debe informar este error a Microsoft. Si usa un paquete de distribución, se equivocaron y debe informarles que se trata de un error.
Para aquellos que encontraron el problema después de actualizar su paquete Visual Studio o .NET Core, esto se debe a las actualizaciones realizadas en .NET Core 3 al eliminar dotnet ef
de .NET Core y convertirlo en un paquete separado que se puede instalar a través de:
dotnet tool install -g dotnet-ef
Para referencia, vea esta respuesta y este cambio de última hora
valoraciones y reseñas
Te invitamos a sostener nuestro quehacer añadiendo un comentario y puntuándolo te lo agradecemos.