El término 'Update-Database' no se reconoce como el nombre de un cmdlet


112

Estoy usando EF5 beta1 y, aunque pude ejecutar la "Base de datos de actualización" antes. Ahora que apago Visual Studio, no puedo hacer que se ejecute. Obtuve el siguiente error:

El término 'Base de datos de actualización' no se reconoce como el nombre de un cmdlet, función, archivo de script o programa operable. Verifique la ortografía del nombre o, si se incluyó una ruta, verifique que la ruta sea correcta y vuelva a intentarlo. En la línea: 1 carácter: 16 + Update-Database <<<< -verbose + CategoryInfo: ObjectNotFound: (Update-Database: String) [], CommandNotFoundException + FullyQualifiedErrorId: CommandNotFoundException

Intenté reinstalar EF5b1 y, aunque fue exitoso (ya instalado), la 'Base de datos de actualización' todavía no funciona.

¿¿¿Alguien puede ayudar???


3
Ayer tuve un problema similar con un cmdlet diferente, y un reinicio completo del sistema ayudó ...
nemesv

11
Reiniciar no es necesario. No ejecutamos scripts init.ps1 después de realizar la restauración del paquete (por eso no se encontró el comando). Simplemente salga y reinicie VS (o descargue / vuelva a cargar el proyecto).
RickAndMSFT

1
Me pasó esto hoy. Abrí un repositorio para un proyecto de equipo y necesitaba restaurar algunos paquetes. Después de la restauración, los comandos update-databasey add-migrationno funcionarían. Reiniciar Visual Studio lo solucionó.
jmbertucci

Respuestas:


169

Últimamente he tenido este problema varias veces. Encontré que la solución que funcionó fue cerrar la Consola del Administrador de paquetes, cerrar Visual Studio y luego volver a abrirlos. El reinicio también funcionó la mayor parte del tiempo, pero no siempre.


7
Por lo general, solo necesita salir de reiniciar VS. Vea mis comentarios en la pregunta original. En raras ocasiones, es posible que deba salir / reiniciar VS dos veces.
RickAndMSFT

1
Simplemente enfrenté el problema y reinicié Visual Studio y las cosas estaban funcionando nuevamente. Gracias.
Shubh

Gracias, por una solución eficaz, si no mala. Parece ser todo lo que funciona de un millón de cosas que he probado.
ProfK

1
Sí, por supuesto. Esta es la solucion. Solución legítima. ¡Gracias Microsoft!
Khateeb321

2
Instalé "Microsoft.EntityFrameworkCore.Tools" Version = "3.1.0" en mis proyectos de datos y "Microsoft.EntityFrameworkCore.Design" Version = "3.1.0" en mi proyecto web principal, que me resolvió el problema.
HaBo

51

Si usa Entity Framework:

Mensaje de error: "Mensaje de error (del comando Update-Database en el PMC): el término 'Update-Database' no se reconoce como el nombre de un cmdlet, función, archivo de script o programa operable. Verifique la ortografía del nombre , o si se incluyó una ruta, verifique que la ruta sea correcta y vuelva a intentarlo ".

Solución: "Salga de Visual Studio. Vuelva a abrir el proyecto y vuelva a intentarlo".

Para obtener más información, visite: Escenarios de Entity Framework 6 avanzados para una aplicación web MVC 5 (12 de 12)

Espero que esto ayude...


@AlbatrossCafe Seguro :)
Murat Yıldız

1
El equipo de desarrolladores de VS debería dar el botón Refresh VS para tales problemas :)
sohaib javed

@sohaibjaved Para algunos problemas, reiniciar VS no sería suficiente y se necesita una limpieza de directorio como se indica en Visual Studio 2015 extremadamente lento . FYI ...
Murat Yıldız

Perdí la cuenta de cuántas cosas se resuelven reiniciando Visual Studio
EKanadily

21

A veces, cuando cargo VS, veo esto en la consola de mi administrador de paquetes:

El valor no puede ser nulo.

Nombre del parámetro: ruta1

Todavía no tengo idea de qué causa eso, pero parece que algo sale mal durante el inicio de la consola Powershell que interrumpe el registro de módulos específicos, como las extensiones EF powershell. Sin embargo, puede cargarlo manualmente:

Import-Module .\packages\EntityFramework.6.1.1\tools\EntityFramework.psm1

Asegúrese de reemplazar 6.1.1 con la versión actual de Entity Framework.


4
¡Gracias! La única solución que funcionó para mí. Sin embargo, para cualquiera que use EF 6.1.3 con VS 2015, hay un error en EntityFramework.psm1 y hay un parche disponible aquí stackoverflow.com/a/30062684/1267778 .
parlamento

18

Reinstalar el paquete nuget solucionó este problema para mí

es decir, ejecutar

Install-Package EntityFramework -Version 5.0.0

en el administrador de paquetes


1
Esto funciona para mi. El proyecto en el que trabajé usaba EF y automáticamente asumo que el paquete estaba instalado. Resultó que no lo era. El desarrollador acaba de hacer referencia directamente a EF dll. El paquete EntityFramework debe estar instalado en el proyecto para que funcione el cmd de Update-Database.
stack247

Parece poco probable que esta respuesta ayude, sin embargo, me salvó el día. Gracias,
Nelson Miranda

Luchando con FK hoy usando Fluent API, etc. y de alguna manera EntityFramework sigue cayendo. Lo que realmente funcionó para mí en este sentido fue hacer otro Update-Package -Reinstall EntityFramework.
Matt Borja

para mí reinstalar y reiniciar. simplemente reinstalar no funciona, y simplemente reiniciar tampoco funciona)
RMazitov

9

obtendrá este error cuando las herramientas EF no estén instaladas correctamente.

pruebe el siguiente comando en el administrador de paquetes Nuget // Desinstale e instale la misma versión de EF

Update-Package "EntityFramework" -reinstall

Si aún enfrenta el mismo problema. cree un nuevo proyecto web y ejecute el siguiente comando en nuget.

(Nota: no es necesario crear el nuevo proyecto en la misma solución o en la misma ubicación).

// Esto actualizará EF a la última versión (incluidas las herramientas) // si desea usar una versión específica, use la -versionbandera.

Update-Package "EntityFramework"

Una vez hecho esto, compruebe su proyecto original y puede eliminar el proyecto recién creado.


¡¡Si!! Gracias =) Solo tenía instalados EntityFramwork, EF.Design, EF.SqlServer y EF.SqlServer.Design.
Janneman96



4

Yo tenía el mismo problema, y el origen de lo que estaba en mi nombre de ruta, que tenía en mi camino un nombre de directorio con soportes rectos, como esto: C:\[PROJ]\TestApp.

Cuando quité los soportes, C:\PROJ\TestAppcomenzó a funcionar bien ...


Por lo general, solo necesita salir de reiniciar VS. Vea mis comentarios en la pregunta original.
RickAndMSFT

@RickAndMSFT Esto está mucho más cerca de una solución mejor que "simplemente" reiniciar VS.
ProfK

@Antonio Incluso yo tuve el mismo problema y tu solución también funcionó para mí.
User5590


4

Para mí el problema fue la versión Nuget .

  1. desinstale Nuget Package Manager.
  2. reinicie Visual Studio.
  3. instaló una nueva versión de Nuget Package Manager.
  4. luego reinicie Visual Studio nuevamente.

1
Este fue mi caso, pero solo necesitaba actualizar nuget en extensiones y actualizar
Oak

esto funcionó para mí, desinstalé el administrador de paquetes nuget, reinstalé el administrador de paquetes nuget, reinicié Visual Studio, desinstalé EntityFramework, reinstalé EntityFramework
Rizan Zaky

3

Resolví desinstalando y volviendo a instalar "Microsoft.EntityFrameworkCore" y "Microsoft.EntityFrameworkCore.Tools"


1
Si usa EF Core, esta es la respuesta correcta. O al menos, el problema para mí fue que Microsoft.EntityFrameworkCore.Toolsno estaba instalado.
Kirk Woll

2

Este problema parece ocurrir cuando abre el proyecto directamente desde el Explorador de archivos. Intente iniciar VS primero y luego abrir el proyecto, funcionó para mí. Supongo que se trata de acceso a caminos.


después de reiniciar varias veces y no resolverlo, ¡esto ayudó a resolver mi problema!
Niklas


0

Si las otras respuestas no funcionan (VS 2017): borre la caché de NuGet, reinicie VS y luego restaure los paquetes.


0

Descubrí que se debía a un paquete corrupto. Había instalado Automapper cuando ya estaba instalado. Solo estaba claro que este paquete estaba dañado cuando intenté instalar otro paquete.

Eliminar el paquete dañado resolvió este problema para mí.

A continuación, puede volver a instalar automapper. El problema fue con la versión 5.4, ahora estoy felizmente en 6.0.


0

Para mí, resulta que el núcleo de EntityFramework no se instaló en mi proyecto (porque comencé con un proyecto en blanco). Entonces, la instalación del paquete EntityFramework resolvió el problema. A veces, si la instalación de EntityFramework falla, intente instalar paquetes individuales uno por uno

P.ej

Microsoft.EntityFrameworkCore.Design
Microsoft.EntityFrameworkCore.SqlServer
Microsoft.EntityFrameworkCore.SqlServer.Design
Microsoft.EntityFrameworkCore.Tools

0

Lo resolví actualizando Package Manager Console.

No obtenía Update-Database en Package Manager Console. Luego reinicio varias veces. También reinicie Windows.

Luego descargo uno nuevo de nuget y luego se resolvió.


0

Tuve este problema en Visual Studio 2015 y lo resolví actualizando la versión de Nuget.

Herramientas -> Extensiones y actualizaciones -> Actualizaciones -> Galería de Visual Studio


0

La solución simple para mí fue asegurarme de que hubiera un guión entre la actualización y la base de datos, como esta: update-databasey usar minúsculas. Puede ser una coincidencia, pero cuando hice esto en la consola de Packet Manager, la base de datos se actualizó y recibí el mensaje de hecho en lugar del not recognized as the name of a cmdlet, function, script fileerror.


0

Comencé a tener el mismo problema después de que abrí accidentalmente una solución de Visual Studio con Visual Studio 2015 en lugar de 2017. El proyecto funcionó bien antes de ese percance. Era un proyecto anterior con EF 5.0 y no EF Core.

Intenté todo lo sugerido: reinicié Visual Studio innumerables veces, limpié el caché de NuGet, eliminé todo en la carpeta de paquetes, reinstalé EF 5 para el proyecto; no fue bueno, no se reconoció la migración de adición. Si actualicé EF a 6, comenzó a reconocer los comandos, pero aún no quería actualizar. Entonces, tan pronto como volví a EF 5, el problema regresó.

Lo único que finalmente me salvó fue hacer lo siguiente:

  • cerrar Visual Studio
  • eliminar todo de la carpeta de paquetes
  • elimine la carpeta .vs en la raíz de su solución. Esta carpeta generalmente está oculta, debe activar la configuración Mostrar archivos y carpetas ocultos o marcar Elementos ocultos en la pestaña Ver carpeta
  • inicie Visual Studio y abra su solución. Le pedirá restaurar los paquetes de NuGet, acepte.

Ahora los comandos EF finalmente comenzaron a funcionar nuevamente.


0

En mi caso:

  • El proyecto de recarga no ayudó
  • Reiniciar VS no ayudó
  • Reiniciar la computadora no ayudó
  • Reinstalar EF no ayudó

Pero encontré un artículo donde la sugerencia era importar manualmente el paquete EF faltante, usando PM Conole:

Import-Module .\packages\EntityFramework.X.X.X\tools\EntityFramework.psm1

Y esta solución resolvió mi problema.


0

En mi caso, reiniciar Visual Studio (muchas, muchas veces) no funcionó, luego, mientras buscaba en otra parte, encontré un mensaje en la terminal de salida:

El SDK de .NET actual no admite la segmentación de .NET Core 2.2. Apunte a .NET Core 2.1 o una versión anterior, o use una versión del .NET SDK que admita .NET Core 2.2.

Así que instalé la versión requerida de .NET Core y el comando se ejecutó correctamente.


0

Tuve este problema en VS 2019 con un proyecto existente que usa EntityFramework 6.3.0. Este proyecto tuvo algunos cambios de versión extraños durante un período de tiempo, y nada lo haría funcionar. Creo que probé todas las sugerencias enumeradas aquí sin suerte.

Por último, la actualización a la versión previa al lanzamiento de ADO.NET Entity Framework (actualmente 6.4.0-preview3-19553-01) se soluciona el problema, mediante la ejecución de esto en la consola de Administrador de paquetes: Update-Package EntityFramework -prerelease. Espero que cuando esta versión se lance en vivo en las próximas semanas, funcionará correctamente.


0

Instalar Microsoft.EntityFrameworkCore.Tools resolvió el problema para mí, usé paquetes nuget


0

En mi caso, hice lo siguiente: - restauré los paquetes NuGet faltantes haciendo clic en el botón "Restaurar" en la parte superior de la Consola del Administrador de paquetes - reinicié Visual Studio - ejecutar update-database


-1

Para mí el problema fue la versión Nuget.

Quité y reinstalé Nuget, luego reinicié Visual Studio y luego todo comenzó a funcionar.

Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.