CommandNotFoundException do Console do Gerenciador de Pacotes Administrativos apenas em um projeto VS específico

122

Tentei executar o comando 'Enable-Migrations' em um novo projeto e recebi a mensagem:

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

Mas em todos os outros projetos, o comando é executado corretamente.

Por que isso está acontecendo?

BTW, estou usando o VS2010 Professional SP1

EDIT: Reinstalei com o comando: Install-Package EntityFramework -IncludePrerelease e o problema desapareceu.

Eduardo Brites
fonte
2
Olá, adicione sua solução como resposta e marque-a como aceita (o que você pode fazer dois dias depois), para que ela não apareça como uma pergunta sem resposta.
Gert Arnold
1
Estou tendo exatamente o mesmo problema. Mas nenhuma das coisas neste segmento parece funcionar. Você reinstalou o visual studio inteiro ou simplesmente executou esse comando?
ObedMarsh
Eu simplesmente executou o comando ...
Eduardo Brites
2
Infelizmente, os resultados desse comando para mim são apenas "'EntityFramework 6.1.0' já instalado". e ainda não possui migração de adição ou ativação de migração como comandos válidos.
Mir
Estou recebendo o pacote de instalação: Não foi possível encontrar o pacote 'EntityFramework'. quando eu tento a sua solução
Naguib Ihab

Respostas:

85

Apenas reiniciar o Visual Studio funcionou para mim. Não há necessidade de instalar pacotes, etc.

Donal
fonte
8
Reiniciar o VS também funcionou para mim, feliz por ter tentado isso antes de tentar reinstalar o EntityFramework
SM3RKY
5
A reinicialização funcionou para o Visual Studio 2015. Não há necessidade de instalar pacotes.
jonas
5
Uma observação - eu tenho esse problema toda vez que tenho que instalar meus pacotes (como um novo repo pull). Parece que o VS precisa reiniciar antes que o PM seja inicializado corretamente com os novos pacotes (VS Community 2015 Update 1)
Jono 5/05
2
Um novo repo pull também causou isso para mim. Reiniciar corrigido. (Atualização 2 do VS Enterprise 2015).
Mike Rouse
84

Eu reinstalei com o comando: Install-Package EntityFramework -IncludePrerelease e o problema desapareceu.

Eduardo Brites
fonte
13
Eu construí a minha solução e, em seguida, fechado e reaberto VS 2013 e funcionou
Lucas
Observe que EntityFrameworkapenas suporta o .net framework 4.0 e 4.5. Portanto, se você estiver usando o .net framework 4.6 ou superior, ele não funcionará.
Tân
1
@ TânNguyễn - o que é isso? minha EntityFramework 6.1.3 NuGet está funcionando bem no meu projeto 4.6.x
bkwdesign
Reiniciar não fez isso por mim, mas fez.
robbpriestley
29

Esse problema está ocorrendo porque não temos o Entity Framework instalado. Instale o Entity Framework usando o comando abaixo.

Install-Package EntityFramework -IncludePrerelease

Depois de instalado, escolha o projeto no menu suspenso do projeto padrão do console do gerenciador de pacotes.

Certifique-se de que pelo menos uma classe em seu projeto herda do contexto de dados, caso contrário, use a classe abaixo:

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

Se não fizermos isso, obteremos outro erro:

No context type was found in the assembly

Depois de concluir essas coisas, você pode executar

enable-migrations
Lijo
fonte
Trabalhou para mim. Obrigado.
Najeeb
Trabalhou para mim, hoje, com VS 2019.
perezdr
17

Reiniciar o Visual Studio com privilégios de administrador resolveu o problema para mim.

Satchi
fonte
13

Verifique se você está executando o Visual Studio como administrador.

jackncoke
fonte
1
Eu estava executando o VS como administrador. Na época, eu não sabia que precisamos instalar o pacote em cada projeto.
Eduardo Brites
12

Eu tive o mesmo problema com o VS 2019 Preview, .Net Core e EntityFramework Core.

Acontece que eu tive que instalar via NuGet Microsoft.EntityFrameworkCore.Toolse Microsoft.EntityFrameworkCore.Design. Feito isso, funcionou como um encanto.

Jean-David Lanz
fonte
10

Primeiro, "Install-Package EntityFramework -IncludePrerelease" e, em seguida, Reiniciar o Visual Studio como administrador trabalhou para mim juntos.

Uzay
fonte
3

No Visual Studio 2012, tive o mesmo erro. Teve que desinstalar o NuGet (Ferramentas> Extensões e Atualizações> Instalado> Todos: NuGet Package Manager: botão Desinstalar). Em seguida, feche o Visual Studio. Em seguida, reabra o Visual Studio e reinstale o NuGet (Ferramentas> Extensões e Atualizações> Online> Galeria do Visual Studio: Gerenciador de Pacotes NuGet: botão Download). Em seguida, nas seguintes janelas: clique no botão Instalar e, em seguida, clique no botão Fechar. Em seguida, feche e reabra o Visual Studio.

mee
fonte
Isso funcionou para mim, acho que é uma opção melhor do que forçar uma atualização para o pré-lançamento.
OverMars 17/02
2

O que corrigiu esse sintoma para mim (VS2013) é desinstalar e reinstalar o pacote EF com o Nuget. A diferença no arquivo csproj mudou isso ...

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

...nisso...

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

Ainda não entendo completamente o porquê, mas funcionou pelo menos.

biscuit314
fonte
Eu tive problemas com adicionar migração / atualização de banco de dados, etc. Tentei várias soluções, mas tenho certeza de que já tentei desinstalar e reinstalar o EF, mas não funcionou. Até agora, quando aconteceu. Esta não é a primeira vez que tive problemas com pacotes EF. :(
GeoffM 24/02
2

No .NET Core, consegui alcançar a mesma resolução descrita na resposta aceita, inserindo o seguinte no console do gerenciador de pacotes:

Install-Package EntityFramework.Core -Pre
ne1410s
fonte
2

Eu tive o mesmo problema e tentei a maioria das soluções fornecidas por outras pessoas, mas funcionou para mim nas etapas abaixo. Eu tenho o VS 2017.

Passos:

Install-Package EntityFramework -IncludePrerelease

então crie uma classe como

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

e, finalmente, executar

Enable-Migrations -EnableAutomaticMigrations

O que não funcionou para mim:

: Reiniciando o VS.

: apenas o comando "Enable-Migrations", que não possui -EnableAutomaticMigrations.

: restaurando ou atualizando o Nuget Package Manager.

Meu erro original no começo foi

/ * O termo 'habilitar-migração' não é reconhecido como o nome de um cmdlet, função, arquivo de script ou programa operável. Verifique a ortografia do nome ou, se um caminho foi incluído, verifique se o caminho está correto e tente novamente. ~~ + CategoryInfo: ObjectNotFound: (enable-migration: String) [], CommandNotFoundException * /

homem de Ferro
fonte
1

Eu tive o mesmo problema e descobri que é por causa de alguns caracteres no caminho do projeto, como [ou] eu corrijo o caminho do projeto e funcionou bem!

pixparker
fonte
1

Enable-Migrations -EnableAutomaticMigrations

chandudab
fonte
1
Depois de tentar várias soluções, sua solução funciona bem para mim.
nguyenhoai890
Trabalhou para mim em Visual Studio Community 2015. Graças (Todas as outras soluções não no meu caso)
fedeteka
1

Como eu já tinha a pasta de migrações, reiniciei o Visual Studio e executei o Update-Database -verbose no console do gerenciador de pacotes. Isso funcionou para mim

depcka
fonte
1

Eu tentei todas as sugestões acima, mas nada funcionou para mim, então eu atualizei Nuget Package Managere funcionou ..

Reyan Chougle
fonte
1
  1. Instale a estrutura da Entidade no projeto atual usando o comando abaixo: PM> Install-Package EntityFramework -IncludePrerelease

  2. Adicione uma classe "MyDBContext" na pasta Model, conforme indicado abaixo:

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

  3. Agora habilite as migrações para o projeto atual com o comando abaixo: PM> enable-migrations

snowblindzz
fonte
1

executar como administrador vs = >> aberto Abra o projeto

-> On the Package manager Console

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

No VS 2013, tente instalar o UPDATE 1 (RC1) e o problema foi resolvido.

Danilo Breda
fonte
0

Eu tinha vários projetos na solução, mas tinha o projeto padrão correto definido, então achei que deveria funcionar.

No final, eu tive que adicionar a -StartupProject MyProjectNameopção ao comando

L_7337
fonte
0

Nenhuma dessas soluções funcionou para mim. Minha solução foi excluir packages/EntityFramework.6.1.3eRestore NuGet Packages

Notei que packages/EntityFramework.6.1.3/tools/EntityFramework.psd1estava faltando, então essa era uma causa provável. Como foi removido em primeiro lugar, embora eu não tenha idéia.

Cameron Aavik
fonte
0

Verifique se a seção de configuração "entityFramework" existe e está descrita no seu arquivo .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
fonte
0

Verifique a versão do Entity Framework.

se for 6.3, faça o downgrade para 6.2 e deve funcionar perfeitamente

Samith Kumar
fonte
2
Por favor, elabore isso. Por que alguém deveria fazer o downgrade da versão da biblioteca instalada apenas para corrigir esse problema?
andrensairr
0

Eu apenas tive o mesmo problema no núcleo asp.net VS2019

Isso resolveu:

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

Não se esqueça de definir o projeto padrão no Package Manager Console para o seu projeto de banco de dados, caso seja diferente.

Durante a execução das migrações, o projeto padrão também parece desempenhar um papel. Em uma etapa posterior, ajudou a instalar isso no meu projeto de inicialização principal (não no projeto de banco de dados EF):

Install-Package Microsoft.EntityFrameworkCore.Design
CodingYourLife
fonte
Eu não acho que há 8 anos o núcleo .net existe.
AFetter
0

se você criar um projeto da Web MVC Você deve selecionar Autenticação ao criar o projeto. por padrão não está selecionado. insira a descrição da imagem aqui

M Fa
fonte
0

o downgrade para 6,2 me ajudou.
.NET Framework versão 4.6.1
Projeto em formato antigo (não .NET Standard) O
Visual Studio deve ser aberto com direitos de administrador para a migração inicial.
Eu acho que o EF com a versão acima de 6.2 requer o .NET Framework mais recente.

Артем
fonte
-4

Verifique se o projeto está aberto na janela Solution Explorer.

Essa pode ser a causa do seu problema.

Renato Diniz
fonte