O termo 'Update-Database' não é reconhecido como o nome de um cmdlet

113

Estou usando EF5 beta1 e enquanto era capaz de executar o "Update-Database" antes. Agora que encerrei o Visual Studio, não consigo fazê-lo funcionar. Estou tendo o erro a seguir:

O termo 'Update-Database' não é reconhecido como o nome de um cmdlet, função, arquivo de script ou programa operável. Verifique a grafia do nome ou, se um caminho foi incluído, verifique se o caminho está correto e tente novamente. Na linha: 1 char: 16 + Update-Database <<<< -verbose + CategoryInfo: ObjectNotFound: (Update-Database: String) [], CommandNotFoundException + FullyQualifiedErrorId: CommandNotFoundException

Tentei reinstalar o EF5b1 e embora tenha obtido sucesso (já instalado), o 'Update-Database' ainda não funciona.

Alguém pode ajudar ??

user1265146
fonte
3
Ontem tive um problema semelhante com um cmdlet diferente e uma reinicialização completa do sistema ajudou ...
nemesv
11
A reinicialização não é necessária. Não executamos scripts init.ps1 após realizar a restauração do pacote (é por isso que o comando não foi encontrado). Simplesmente saia e reinicie o VS (ou descarregue / recarregue o projeto).
RickAndMSFT
1
Isso aconteceu comigo hoje. Abri um repositório para um projeto de equipe e ele precisava restaurar alguns pacotes. Após a restauração, os comandos update-databasee add-migrationnão funcionariam. Reiniciar o Visual Studio corrigiu isso.
jmbertucci

Respostas:

169

Tenho tido esse problema várias vezes recentemente. Achei que a solução que funcionou foi fechar o Console do Gerenciador de Pacotes, fechar o Visual Studio e reabri-los. A reinicialização também funcionou na maioria das vezes, mas nem sempre.

Richard
fonte
7
Normalmente, você só precisa sair e reiniciar o VS. Veja meus comentários na pergunta original. Em raras ocasiões, você pode precisar sair / reiniciar o VS duas vezes.
RickAndMSFT
1
Apenas enfrentei o problema e reiniciei o Visual Studio e as coisas estavam funcionando novamente. Obrigado.
Shubh
Obrigado, por uma solução eficaz, se não ruim. Parece ser tudo o que funciona em um milhão de coisas que experimentei.
ProfK de
1
Sim, claro. Esta é a solução. Solução legítima. Obrigado Microsoft!
Khateeb321
2
Instalei "Microsoft.EntityFrameworkCore.Tools" Version = "3.1.0" em meus projetos de dados e "Microsoft.EntityFrameworkCore.Design" Version = "3.1.0" em meu projeto web principal, que resolveu o problema para mim.
HaBo
51

Se você usar o Entity Framework:

Mensagem de erro: "Mensagem de erro (do comando Update-Database no PMC): O termo 'Update-Database' 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. "

Solução: "Saia do Visual Studio. Reabra o projeto e tente novamente."

Para obter mais informações, visite: Advanced Entity Framework 6 Scenarios for an MVC 5 Web Application (12 de 12)

Espero que isto ajude...

Murat Yıldız
fonte
@AlbatrossCafe Sure :)
Murat Yıldız
1
A equipe de desenvolvedores do VS deve fornecer o botão Atualizar VS para esses problemas :)
sohaib javed
@sohaibjaved Para alguns problemas, reiniciar o VS não seria suficiente e alguma limpeza de diretório é necessária conforme indicado no Visual Studio 2015 extremamente lento . Para sua informação ...
Murat Yıldız
Perdi a conta de quantas coisas são resolvidas reiniciando o Visual Studio
EKanadily
21

Às vezes, quando carrego o VS, vejo isso no console do gerenciador de pacotes:

Valor não pode ser nulo.

Nome do parâmetro: path1

Não tenho ideia do que causa isso ainda, mas parece que algo deu errado durante a inicialização do console Powershell que interrompe o registro de módulos específicos, como as extensões EF PowerShell. Você pode simplesmente carregá-lo manualmente:

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

Certifique-se de substituir 6.1.1 por qualquer que seja sua versão atual do Entity Framework.

Steve Rukuts
fonte
4
Obrigado! Única solução que funcionou para mim. No entanto, para quem usa EF 6.1.3 com VS 2015, há um bug em EntityFramework.psm1 e há um patch disponível aqui stackoverflow.com/a/30062684/1267778 .
parlamento
18

Reinstalar o pacote nuget corrigiu esse problema para mim

ou seja, execute

Install-Package EntityFramework -Version 5.0.0

no gerenciador de pacotes

Atreeon
fonte
1
Isso funciona para mim. O projeto em que trabalhei usava EF e presumo automaticamente que o pacote foi instalado. Acontece que não foi. O desenvolvedor acabou de fazer referência direta ao EF dll. O pacote EntityFramework deve ser instalado no projeto para que o cmd Update-Database funcione.
stack247 de
Esta resposta parece improvável de ajudar, mas salvou meu dia. Obrigado,
Nelson Miranda
Lutando com FKs hoje usando API Fluent, etc. e de alguma forma EntityFramework continua caindo. O que realmente funcionou para mim nesse sentido foi fazer ainda outro Update-Package -Reinstall EntityFramework.
Matt Borja
para mim reinstalar e reiniciar. apenas reinstalar não funciona e apenas reiniciar não funciona também)
RMazitov
9

você obterá este erro quando as ferramentas EF não estiverem instaladas corretamente.

tente o comando abaixo no gerenciador de pacotes Nuget // Desinstala e instala a mesma versão do EF

Update-Package "EntityFramework" -reinstall

Se você ainda enfrenta o mesmo problema. crie um novo projeto da Web e execute o comando abaixo no nuget.

(Observação: não há necessidade de criar o novo projeto na mesma solução ou no mesmo local.)

// Isso atualizará o EF para a versão mais recente (incluindo as ferramentas) // se você quiser usar uma versão específica, use o -versionsinalizador.

Update-Package "EntityFramework"

Depois de fazer isso, verifique seu projeto original e você pode excluir o projeto recém-criado.

sudhAnsu63
fonte
Sim!! Obrigado =) Eu só tinha o EntityFramwork, EF.Design, EF.SqlServer e EF.SqlServer.Design instalados.
Janneman96
9

Apenas reinicie o Visual Studio, isso resolverá o problema. Funciona para mim.

Abdullah Ibn Mannan
fonte
É muito engraçado como reiniciar meu PC funciona para este problema
Prince Tegaton
4

Eu tive esse mesmo problema, e a origem do que era no meu nome do caminho, eu tinha no meu caminho um nome de diretório com suportes em linha reta, como este: C:\[PROJ]\TestApp.

Quando retirei os colchetes, C:\PROJ\TestAppcomeçou a funcionar muito bem ...

António Mourão
fonte
Normalmente, você só precisa sair e reiniciar o VS. Veja meus comentários na pergunta original.
RickAndMSFT
@RickAndMSFT Isso está muito mais perto de uma solução melhor que "apenas" reiniciar o VS.
ProfK de
@Antonio Até eu tive o mesmo problema e sua solução funcionou para mim também.
User5590
4

Just ReOpen visual studio é um trabalho para mim

Lobo Cinzento
fonte
4

Para mim, o problema era a versão Nuget .

  1. desinstalar o Nuget Package Manager.
  2. reinicie o Visual Studio.
  3. instalou uma nova versão do Nuget Package Manager.
  4. em seguida, reinicie o Visual Studio novamente.
reza.cse08
fonte
1
Este foi o meu caso, mas eu só precisava atualizar o nuget nas extensões e atualizar
Oak,
funcionou para mim, desinstalou o gerenciador de pacotes nuget, reinstalou o gerenciador de pacotes nuget, reiniciou o visual studio, desinstalou o EntityFramework, reinstalou o EntityFramework
Rizan Zaky
3

Resolvi com a desinstalação e reinstalação de "Microsoft.EntityFrameworkCore" e "Microsoft.EntityFrameworkCore.Tools"

Marco Rinaldi
fonte
1
Se você estiver usando EF Core, esta é a resposta correta. Ou pelo menos, o problema para mim é que Microsoft.EntityFrameworkCore.Toolsnão foi instalado.
Kirk Woll,
2

Este problema parece ocorrer quando você abre o projeto diretamente do File Explorer. Tente iniciar o VS primeiro e depois abrir o projeto - funcionou para mim. Suponho que se trate de acesso a caminhos.

Johnny Nintendo
fonte
depois de reiniciar algumas vezes e não conseguir resolver, isso ajudou a resolver meu problema!
Niklas
0

Se as outras respostas não funcionarem (VS 2017): limpe o cache do NuGet, reinicie o VS e restaure os pacotes.


fonte
0

Descobri que era devido a um pacote corrompido. Eu tinha instalado o Automapper quando ele já estava instalado. Ficou claro que este pacote estava corrompido quando tentei instalar outro pacote.

Remover o pacote corrompido resolveu esse problema para mim.

Você pode então reinstalar o automapper. O problema era com a versão 5.4, agora estou feliz com a 6.0.

trees_are_great
fonte
0

Para mim, parece que o núcleo EntityFramework não foi instalado no meu projeto (porque comecei com um projeto em branco). Então, instalando EntityFramework pacote resolveu o problema. Às vezes, se a instalação do EntityFramework falhar, tente instalar os pacotes individuais um por um

Por exemplo

Microsoft.EntityFrameworkCore.Design
Microsoft.EntityFrameworkCore.SqlServer
Microsoft.EntityFrameworkCore.SqlServer.Design
Microsoft.EntityFrameworkCore.Tools
Deepak Kumar
fonte
0

Resolvi atualizando o Console do gerenciador de pacotes.

Eu não estava obtendo Update-Database no Package Manager Console. Então eu reinicio várias vezes. Reinicie também o Windows.

Então eu baixei um novo do nuget e foi resolvido.

Shiblee
fonte
0

Tive esse problema no Visual Studio 2015 e resolvi-o atualizando a versão do Nuget.

Ferramentas -> Extensões e atualizações -> Atualizações -> Galeria do Visual Studio

Owen Pauling
fonte
0

A solução simples para mim foi ter certeza de que havia um traço entre a atualização e o banco de dados, como este: update-databasee usar letras minúsculas. Pode ser coincidência, mas quando fiz isso no console do gerenciador de pacotes, o banco de dados foi atualizado e recebi a mensagem de concluído em vez do not recognized as the name of a cmdlet, function, script fileerro.

user10776524
fonte
0

Comecei a ter o mesmo problema depois de abrir acidentalmente uma solução do Visual Studio com o Visual Studio 2015 em vez de 2017. O projeto funcionou muito bem antes desse acidente. Era um projeto mais antigo com EF 5.0 e não EF Core.

Tentei tudo o que foi sugerido - reiniciei o Visual Studio inúmeras vezes, limpei o cache do NuGet, excluí tudo na pasta de pacotes, reinstalei o EF 5 para o projeto - nada bom, a migração de adição não foi reconhecida. Se eu atualizei o EF para 6, ele começou a reconhecer os comandos, mas eu não queria atualizar ainda. Então, assim que voltei para EF 5, o problema voltou.

A única coisa que finalmente me salvou foi fazer o seguinte:

  • fechar Visual Studio
  • apague tudo da pasta de pacotes
  • exclua a pasta .vs na raiz da sua solução. Esta pasta geralmente está oculta, você deve ativar a configuração Mostrar arquivos e pastas ocultos ou marcar Itens ocultos na guia Exibir da pasta
  • inicie o Visual Studio e abra sua solução. Ele pedirá para restaurar os pacotes NuGet, concorde com isso.

Agora os comandos EF finalmente começaram a funcionar novamente.

JustAMartin
fonte
0

No meu caso:

  • Recarregar projeto não ajudou
  • Reiniciar VS não ajudou
  • Reiniciar computador não ajudou
  • Reinstalar EF não ajudou

Mas eu encontrei um artigo onde a sugestão era importar manualmente o pacote EF ausente, usando PM Conole:

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

E essa solução resolveu meu problema.

HOMEM
fonte
0

No meu caso, reiniciar o Visual Studio (muitas, muitas vezes) não funcionou, então, quando estava procurando em outro lugar, encontrei uma mensagem no terminal de saída:

O .NET SDK atual não oferece suporte para o .NET Core 2.2. Mire o .NET Core 2.1 ou inferior ou use uma versão do .NET SDK que ofereça suporte ao .NET Core 2.2.

Portanto, instalei a versão necessária do .NET Core e o comando foi executado com êxito.

maury844
fonte
0

Eu tive esse problema no VS 2019 com um projeto existente usando EntityFramework 6.3.0. Este projeto teve algumas mudanças de versão estranhas feitas nele ao longo de um período de tempo, e nada o faria funcionar. Acredito que tentei todas as sugestões listadas aqui sem sorte.

Finalmente, a atualização para a versão de pré-lançamento do EntityFramework (atualmente 6.4.0-preview3-19553-01) fez corrigir o problema, executando isso no Console Package Manager: Update-Package EntityFramework -prerelease. Tenho esperança de que, quando esta versão for lançada ao vivo nas próximas semanas, ela funcionará corretamente.

user12861
fonte
0

Instalar Microsoft.EntityFrameworkCore.Tools resolveu o problema para mim, usei pacotes nuget

Mario Berthely
fonte
0

No meu caso, fiz o seguinte: - restaurei os pacotes NuGet ausentes clicando no botão "Restaurar" na parte superior do Console do gerenciador de pacotes - reiniciei o Visual Studio - execute update-database

Dragos Bajenaru
fonte
-1

Para mim, o problema era a versão Nuget.

Removi e reinstalei o Nuget, reiniciei o Visual Studio e tudo começou a funcionar.

Lucas
fonte