Saltar al contenido

¿No puede encontrar el comando ‘dotnet ef’?

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:

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.

¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)



Utiliza Nuestro Buscador

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *