Package Manager Console Enable-Migrations CommandNotFoundException solo en un proyecto VS específico

122

Traté de ejecutar el comando 'Enable-Migrations' en un nuevo proyecto y recibí el mensaje:

PM> Enable-Migrations
The term 'Enable-Migrations' is not recognized as the name of a cmdlet, function, script file, or operable program. Check the spelling of the name, or if a path was included, verif
y that the path is correct and try again.
At line:1 char:18
+ Enable-Migrations <<<< 
    + CategoryInfo          : ObjectNotFound: (Enable-Migrations:String) [], CommandNotFoundException
    + FullyQualifiedErrorId : CommandNotFoundException

Pero en todos los demás proyectos, el comando funciona bien.

¿Por qué está pasando esto?

Por cierto, estoy usando VS2010 Professional SP1

EDITAR: reinstalé con el comando: Install-Package EntityFramework -IncludePrerelease y el problema desapareció.

Eduardo Brites
fuente
2
Hola, agregue su solución como respuesta y márquela como aceptada (que puede hacer 2 días después), para que no aparezca como una pregunta sin respuesta.
Gert Arnold
1
Estoy teniendo exactamente el mismo problema. Pero ninguna de las cosas en este hilo parece funcionar. ¿Reinstalaste todo el estudio visual o simplemente ejecutaste ese comando?
ObedMarsh
Simplemente ejecuté el comando ...
Eduardo Brites
2
Lamentablemente, los resultados de ese comando para mí son simplemente "'EntityFramework 6.1.0' ya instalado". y todavía no tiene agregar migración o habilitar migraciones como comandos válidos.
Mir
Recibo el paquete de instalación: no se puede encontrar el paquete 'EntityFramework'. cuando pruebo tu solución
Naguib Ihab

Respuestas:

85

Simplemente reiniciar Visual Studio funcionó para mí. No es necesario instalar paquetes, etc.

Donal
fuente
8
Reiniciar VS también funcionó para mí, me alegro de haberlo intentado antes de intentar reinstalar el EntityFramework
SM3RKY
55
El reinicio funcionó para Visual Studio 2015. No es necesario instalar paquetes.
jonas
55
Una nota: tengo este problema cada vez que tengo que instalar mis paquetes (como un nuevo repositorio). Parece que VS necesita reiniciarse antes de que el PM se inicialice correctamente con los nuevos paquetes (VS Community 2015 Update 1)
Jono
2
El nuevo repositorio también me causó esto. Reiniciar lo arregló. (VS Enterprise 2015 Actualización 2).
Mike Rouse
84

Reinstalé con el comando: Install-Package EntityFramework -IncludePrerelease y el problema desapareció.

Eduardo Brites
fuente
13
Construí mi solución y luego cerré y volví a abrir VS 2013 y funcionó
Luke
Tenga en cuenta que EntityFrameworksolo es compatible con .NET Framework 4.0 y 4.5. Por lo tanto, si está utilizando .NET Framework 4.6 o superior, no funciona.
Tân
1
@ TânNguyễn: ¿qué es eso? my EntityFramework 6.1.3 NuGet funciona bien en mi proyecto
4.6.x
Reiniciar no lo hizo por mí, pero esto sí.
robbpriestley
29

Este problema se produce porque no tenemos instalado Entity Framework. Instale Entity Framework utilizando el siguiente comando.

Install-Package EntityFramework -IncludePrerelease

Una vez instalado, elija el proyecto en el menú desplegable del proyecto predeterminado de la consola del administrador de paquetes.

Asegúrese de que al menos una clase en su proyecto herede del contexto de datos; de lo contrario, use la siguiente clase:

public class MyDbContext : DbContext
    {
        public MyDbContext()
        {
        }
    }

Si no hacemos esto, obtendremos otro error:

No context type was found in the assembly

Después de completar estas cosas puedes correr

enable-migrations
Lijo
fuente
Trabajó para mi. Gracias.
Najeeb
Trabajó para mí hoy con VS 2019.
perezdr
17

Reiniciar Visual Studio con privilegio de administrador resolvió el problema para mí.

Satchi
fuente
13

Asegúrese de ejecutar Visual Studio como administrador.

Jackncoke
fuente
1
Estaba ejecutando VS como administrador. En ese momento no sabía que necesitábamos instalar el paquete en cada proyecto.
Eduardo Brites
12

Tuve el mismo problema con VS 2019 Preview, .Net Core y EntityFramework Core.

Resulta que tuve que instalar a través de NuGet Microsoft.EntityFrameworkCore.Toolsy Microsoft.EntityFrameworkCore.Design. Una vez hecho eso, funcionó a las mil maravillas.

Jean-David Lanz
fuente
10

Primero "Instalar-Paquete EntityFramework -IncludePrerelease" y luego Reiniciar Visual Studio como Administrador funcionó para mí juntos.

Uzay
fuente
3

En Visual Studio 2012 tuve el mismo error. Tuve que desinstalar NuGet (Herramientas> Extensiones y actualizaciones> Instalado> Todos: NuGet Package Manager: botón Desinstalar). Luego cerró Visual Studio. Luego reabrió Visual Studio y reinstalé NuGet (Herramientas> Extensiones y actualizaciones> En línea> Galería de Visual Studio: Administrador de paquetes NuGet: botón Descargar). Luego, en las siguientes ventanas: haga clic en el botón Instalar, luego haga clic en el botón Cerrar. Luego cierre y vuelva a abrir Visual Studio.

yo
fuente
Esto funcionó para mí, creo que es una mejor opción que forzar una actualización a la versión preliminar.
OverMars
2

Lo que solucionó este síntoma para mí (VS2013) es desinstalar y luego reinstalar el paquete EF con Nuget. La diferencia en el archivo csproj cambió esto ...

<Reference Include="EntityFramework">
  <HintPath>..\packages\EntityFramework.6.1.1\lib\net45\EntityFramework.dll</HintPath>
</Reference>

...dentro de esto...

<Reference Include="EntityFramework, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089, processorArchitecture=MSIL">
  <SpecificVersion>False</SpecificVersion>
  <HintPath>..\packages\EntityFramework.6.1.1\lib\net45\EntityFramework.dll</HintPath>
</Reference>

Todavía no entiendo completamente por qué, pero al menos funcionó.

galleta314
fuente
Tuve problemas con agregar-migración / actualizar-base de datos, etc. Probé todas las soluciones, pero estoy seguro de que ya intenté desinstalar y reinstalar EF, pero no funcionó. Hasta ahora cuando lo hizo. Esta no es la primera vez que tengo problemas con los paquetes EF. :(
GeoffM
2

En .NET Core, pude alcanzar la misma resolución que se describe en la respuesta aceptada, ingresando lo siguiente en la consola del administrador de paquetes:

Install-Package EntityFramework.Core -Pre
ne1410s
fuente
2

Tuve el mismo problema y probé la mayor parte de la solución proporcionada por otras personas, pero funcionó para mí con los pasos a continuación. Tengo VS 2017.

Pasos:

Install-Package EntityFramework -IncludePrerelease

luego crea una clase como

public class MyDBContext : DbContext { public MyDBContext() { } }

y en la última ejecución

Enable-Migrations -EnableAutomaticMigrations

Lo que no funcionó para mí:

: Reiniciar VS.

: solo el comando "Enable-Migrations", que no tiene -EnableAutomaticMigrations.

: restaurar o actualizar Nuget Package Manager.

Mi error original al principio fue

/ * El término 'habilitar-migració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 e intente nuevamente. En línea: 1 carácter: 1 + habilitar-migración + ~~~~~~~~~~~~~~ ~~ + CategoryInfo: ObjectNotFound: (enable-Migration: String) [], CommandNotFoundException * /

hombre de Acero
fuente
1

Tuve el mismo problema y descubrí que se debe a que algunos caracteres en la ruta del proyecto como [o] corrigí la ruta del proyecto y funcionó bien.

pixparker
fuente
1

Enable-Migrations -EnableAutomaticMigrations

chandudab
fuente
1
Después de probar varias soluciones, su solución me funciona bien.
nguyenhoai890
Trabajó para mí en Visual Studio Community 2015. Gracias (todas las otras soluciones fallaron en mi caso)
fedeteka
1

Como ya tenía la carpeta de migraciones, reinicié Visual Studio y ejecuté Update-Database -verbose en la consola del administrador de paquetes. Eso funciono para mi

depcka
fuente
1

Intenté todas las sugerencias anteriores, pero nada funcionó para mí, luego actualicé Nuget Package Managery funcionó.

Reyan Chougle
fuente
1
  1. Instale el marco de Entity al proyecto actual usando el siguiente comando: PM> Install-Package EntityFramework -IncludePrerelease

  2. Agregue una clase "MyDBContext" en la carpeta Modelo como se muestra a continuación:

    clase pública MyDBContext: DbContext {public MyDBContext () {}}

  3. Ahora habilite las migraciones para el proyecto actual con el siguiente comando: PM> enable-migrations

snowblindzz
fuente
1

ejecutar como administrador vs = >> abrir Abrir el proyecto

-> On the Package manager Console

Enable-migration
add-migration migrationName
update-database
jamaljaj
fuente
0

En VS 2013, intente instalar la ACTUALIZACIÓN 1 (RC1) y el problema se resuelve.

Danilo Breda
fuente
0

Tenía varios proyectos en la solución, pero tenía el conjunto de proyectos predeterminado correcto, así que pensé que debería funcionar.

Al final, tuve que agregar la -StartupProject MyProjectNameopción al comando

L_7337
fuente
0

Ninguna de estas soluciones funcionó para mí. Mi solución fue eliminar packages/EntityFramework.6.1.3yRestore NuGet Packages

Noté que packages/EntityFramework.6.1.3/tools/EntityFramework.psd1faltaba, así que esta era una causa probable. Cómo se eliminó en primer lugar, aunque no tengo idea.

Cameron Aavik
fuente
0

Compruebe si la sección de configuración "entityFramework" existe y se describe en su archivo .config

<configSections>
    <!-- For more information on Entity Framework configuration, visit http://go.microsoft.com/fwlink/?LinkID=237468 -->
    <section name="entityFramework" type="System.Data.Entity.Internal.ConfigFile.EntityFrameworkSection, EntityFramework, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" requirePermission="false"/></configSections>

        <entityFramework>
            <defaultConnectionFactory type="System.Data.Entity.Infrastructure.SqlConnectionFactory, EntityFramework"/>
            <providers>
                <provider invariantName="System.Data.SqlClient" type="System.Data.Entity.SqlServer.SqlProviderServices, EntityFramework.SqlServer"/>
            </providers>
        </entityFramework>
KiriK
fuente
0

Verifique la versión de Entity Framework.

si es 6.3, descárguelo a 6.2 y debería funcionar bien

Samith Kumar
fuente
2
Por favor explique sobre esto. ¿Por qué alguien debería degradar la versión de la biblioteca instalada solo para solucionar este problema?
andrensairr
0

Acabo de tener el mismo problema en asp.net core VS2019

Esto lo resolvió:

Install-Package Microsoft.EntityFrameworkCoreInstall-Package
Install-Package Microsoft.EntityFrameworkCore.Tools

No olvide configurar el proyecto predeterminado en Package Manager Console para su proyecto de base de datos en caso de que sea diferente.

Al ejecutar las migraciones, el proyecto predeterminado también parece desempeñar un papel. En un paso posterior, ayudó a instalar esto en mi proyecto de inicio principal (no en el proyecto de base de datos EF):

Install-Package Microsoft.EntityFrameworkCore.Design
CodingYourLife
fuente
No creo que hace 8 años .net core exista.
Después del
0

si crea un proyecto web MVC Debe seleccionar Autenticación al crear el proyecto. por defecto no está seleccionado. ingrese la descripción de la imagen aquí

M Fa
fuente
0

bajar a 6.2 me ayudó.
.NET Framework versión 4.6.1
Proyecto en formato antiguo (no .NET Standard)
Visual Studio debe estar abierto con derechos de administrador para la migración inicial.
Supongo que EF con la versión anterior a 6.2 requiere el último .NET Framework.

Артем
fuente
-4

Compruebe si el proyecto está abierto en la ventana del Explorador de soluciones.

Esta podría ser la causa de su problema.

Renato Diniz
fuente