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???

usuario1265146
fuente
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.

Ricardo
fuente
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...

Murat Yıldız
fuente
@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.

Steve Rukuts
fuente
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

atreeon
fuente
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.

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

Simplemente reinicie Visual Studio, resolverá el problema. Funciona para mi.

Abdullah Ibn Mannan
fuente
Es realmente divertido cómo funciona reiniciar mi PC para este problema
Prince Tegaton
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 ...

António Mourão
fuente
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

Just ReOpen Visual Studio es un trabajo para mí

Lobo gris
fuente
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.
reza.cse08
fuente
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"

Marco Rinaldi
fuente
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.

Johnny Nintendo
fuente
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.


fuente
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.

trees_are_great
fuente
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
Deepak Kumar
fuente
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ó.

Shiblee
fuente
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

Owen Pauling
fuente
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.

usuario10776524
fuente
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.

JustAMartin
fuente
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.

HOMBRE
fuente
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.

maury844
fuente
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.

usuario12861
fuente
0

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

Mario Berthely
fuente
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

Dragos Bajenaru
fuente
-1

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

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

Luke
fuente