2
respostas

Erro na execução do comando : dotnet ef database update --project .\ContainRs.WebApp\ContainRs.WebApp.csproj --startup-project .\ContainRs.WebApp\ContainRs.WebApp.csproj

SDK da minha máquina: 9.0.306 => Baixei o indicado no curso.
Minha máquina tb tinha os pacotes :



=> Alterei para 8.0.22 não deu certo.
=> Alterei pra uma versão bem inferior 6.0.31 tb não deu certo
Não consigo rodar os comandos dotnet restore, nem o dotnet clean e no dotnet build ele me exibe esses erros:
C:\Users\david.leite\OneDrive - ITECSA TECNOLOGIA E SERVICOS SA\Documentos\Itecsa-David\Estudo\ContainRs-main>dotnet build
C:\Users\david.leite\OneDrive - ITECSA TECNOLOGIA E SERVICOS SA\Documentos\Itecsa-David\Estudo\ContainRs-main\ContainRs.WebApp\ContainRs.WebApp.csproj : error NU1202: O pacote Microsoft.EntityFrameworkCore.Design 6.0.31 não é compatível com net80 (.NETFramework,Version=v8.0). O pacote Microsoft.EntityFrameworkCore.Design 6.0.31 dá suporte a: net6.0 (.NETCoreApp,Version=v6.0)
C:\Users\david.leite\OneDrive - ITECSA TECNOLOGIA E SERVICOS SA\Documentos\Itecsa-David\Estudo\ContainRs-main\ContainRs.WebApp\ContainRs.WebApp.csproj : error NU1202: O pacote Microsoft.EntityFrameworkCore.SqlServer 6.0.31 não é compatível com net80 (.NETFramework,Version=v8.0). O pacote Microsoft.EntityFrameworkCore.SqlServer 6.0.31 dá suporte a: net6.0 (.NETCoreApp,Version=v6.0)
C:\Users\david.leite\OneDrive - ITECSA TECNOLOGIA E SERVICOS SA\Documentos\Itecsa-David\Estudo\ContainRs-main\ContainRs.WebApp\ContainRs.WebApp.csproj : error NU1202: O pacote Microsoft.EntityFrameworkCore.Design 6.0.31 não é compatível com net80 (.NETFramework,Version=v8.0) / win7-x86. O pacote Microsoft.EntityFrameworkCore.Design 6.0.31 dá suporte a: net6.0 (.NETCoreApp,Version=v6.0)
C:\Users\david.leite\OneDrive - ITECSA TECNOLOGIA E SERVICOS SA\Documentos\Itecsa-David\Estudo\ContainRs-main\ContainRs.WebApp\ContainRs.WebApp.csproj : error NU1202: O pacote Microsoft.EntityFrameworkCore.SqlServer 6.0.31 não é compatível com net80 (.NETFramework,Version=v8.0) / win7-x86. O pacote Microsoft.EntityFrameworkCore.SqlServer 6.0.31 dá suporte a: net6.0 (.NETCoreApp,Version=v6.0)

Restaurar falhou com 4 erro(s) em 1,3s

Matricule-se agora e aproveite até 50% OFF

O maior desconto do ano para você evoluir com a maior escola de tecnologia

QUERO APROVEITAR
2 respostas

Oi David! Tudo bem?

A aplicação está configurada para usar o .NET 8.0, mas você tentou usar pacotes do Entity Framework Core que são compatíveis apenas com o .NET 6.0. Isso está causando os erros de compatibilidade que você está vendo.

Aqui estão algumas etapas que você pode seguir para tentar resolver o problema:

  1. Verifique a versão do .NET SDK: Certifique-se de que você realmente tem o .NET SDK 8.0 instalado. Você pode verificar isso executando dotnet --version no terminal.

  2. Atualize os pacotes do Entity Framework Core: Certifique-se de que os pacotes Microsoft.EntityFrameworkCore.Design e Microsoft.EntityFrameworkCore.SqlServer estão na versão 9.0.0, que é a versão compatível com o .NET 8.0 que você está usando. Você pode fazer isso editando seu arquivo .csproj para garantir que as referências estejam corretas:

    <PackageReference Include="Microsoft.EntityFrameworkCore.Design" Version="9.0.0" />
    <PackageReference Include="Microsoft.EntityFrameworkCore.SqlServer" Version="9.0.0" />
    
  3. Restaure os pacotes: Depois de atualizar as referências, execute dotnet restore para restaurar os pacotes.

  4. Construa o projeto: Tente executar dotnet build novamente para ver se os erros foram resolvidos.

  5. Execute o comando de migração: Se tudo estiver funcionando, tente executar novamente o comando dotnet ef database update.

Espero que essas dicas ajudem a resolver o problema! Se ainda encontrar dificuldades, peço que compartilhe todo o seu projeto comigo, pois, assim farei testes para identificar o ainda precisa ser ajustado.

Caso este post tenha lhe ajudado, por favor, marcar como solucionado ✓.

Olá David.
Tudo bem?
Vamos tentar resolver seu problema.
O erro que você está enfrentando está relacionado à incompatibilidade das versões dos pacotes do Entity Framework Core com a versão do .NET SDK que você está usando.
Vou explicar o problema e sugerir algumas soluções.
O erro que você está recebendo significa que os pacotes do Entity Framework Core 6.x (como Microsoft.EntityFrameworkCore.Design e Microsoft.EntityFrameworkCore.SqlServer) são compatíveis apenas com versões do .NET 6.0 (ou versões inferiores do .NET Core), mas você está tentando usá-los em um projeto que está direcionado para o .NET 8.0, que é uma versão mais recente e não é compatível com esses pacotes.
No seu arquivo .csproj, é possível que você esteja utilizando o target framework incorreto, ou seja, está direcionando o projeto para o .NET 8.0, mas os pacotes são compatíveis apenas com o .NET 6.0.
Tente verificar e alterar o target framework para o .NET 6.0 ou .NET 7.0 no arquivo .csproj do projeto.
Abra o arquivo .csproj (no caso, ContainRs.WebApp.csproj) e altere a linha do framework para algo como:

<TargetFramework>net6.0</TargetFramework>

Ou, se você preferir, pode atualizar os pacotes do Entity Framework Core para uma versão mais recente, compatível com o .NET 8.0.
Outra opção seria atualizar os pacotes do Microsoft.EntityFrameworkCore para uma versão compatível com o .NET 8.0, mas no momento, a versão estável do EF Core mais recente é a 7.0, que já oferece suporte ao .NET 8.0.
Para fazer isso, você pode atualizar os pacotes do EF Core.
No seu terminal, execute o seguinte comando para atualizar os pacotes:

dotnet add package Microsoft.EntityFrameworkCore --version 7.0.0
dotnet add package Microsoft.EntityFrameworkCore.SqlServer --version 7.0.0
dotnet add package Microsoft.EntityFrameworkCore.Design --version 7.0.0

Depois disso, tente rodar os comandos novamente (dotnet restore, dotnet build, etc).
Certifique-se de que o SDK do .NET que você está usando é compatível com a versão de framework do seu projeto.
No seu caso, o erro mostra que você está usando o SDK 9.0.306, mas seu projeto parece estar configurado para .NET 8.0.
Se for o caso, tente mudar para uma versão do SDK mais adequada para o .NET 6.0 ou .NET 7.0 (como o SDK 7.x) e veja se resolve.
Você pode verificar se há outras configurações específicas no seu projeto que exigem ajustes, como AppSettings.json ou configurações no DbContext.
Passos a seguir:

  1. Atualize o arquivo .csproj para o .NET 6.0 ou altere os pacotes para a versão 7.0.
  2. Rode o comando dotnet restore para garantir que os pacotes sejam restaurados corretamente.
  3. Tente rodar o comando dotnet ef database update novamente.

Testa ai as soluções acima e avise alguma duvida.
Bons estudos.