Solucionado (ver solução)
Solucionado
(ver solução)
2
respostas

Exceção no add-migration unidade

Quando executei o comando o console retornou esses erros.

PM> Add-Migration unidade System.Reflection.TargetInvocationException: Uma exce�ao foi acionada pelo destino de uma chamada. ---> System.TypeLoadException: Nao foi poss�vel carregar o tipo Microsoft.EntityFrameworkCore.Internal.LazyRef`1 do assembly Microsoft.EntityFrameworkCore, Version=3.1.6.0, Culture=neutral, PublicKeyToken=adb9793829ddae60. em Microsoft.EntityFrameworkCore.Design.OperationExecutor..ctor(Object reportHandler, IDictionary args) --- Fim do rastreamento de pilha de exce�oes internas --- em System.RuntimeMethodHandle.InvokeMethod(Object target, Object[] arguments, Signature sig, Boolean constructor) em System.Reflection.RuntimeConstructorInfo.Invoke(BindingFlags invokeAttr, Binder binder, Object[] parameters, CultureInfo culture) em System.RuntimeType.CreateInstanceImpl(BindingFlags bindingAttr, Binder binder, Object[] args, CultureInfo culture, Object[] activationAttributes, StackCrawlMark& stackMark) em System.Activator.CreateInstance(Type type, BindingFlags bindingAttr, Binder binder, Object[] args, CultureInfo culture, Object[] activationAttributes) em System.Activator.CreateInstance(String assemblyString, String typeName, Boolean ignoreCase, BindingFlags bindingAttr, Binder binder, Object[] args, CultureInfo culture, Object[] activationAttributes, Evidence securityInfo, StackCrawlMark& stackMark) em System.Activator.CreateInstance(String assemblyName, String typeName, Boolean ignoreCase, BindingFlags bindingAttr, Binder binder, Object[] args, CultureInfo culture, Object[] activationAttributes) em System.AppDomain.CreateInstance(String assemblyName, String typeName, Boolean ignoreCase, BindingFlags bindingAttr, Binder binder, Object[] args, CultureInfo culture, Object[] activationAttributes) em System.AppDomain.CreateInstanceAndUnwrap(String assemblyName, String typeName, Boolean ignoreCase, BindingFlags bindingAttr, Binder binder, Object[] args, CultureInfo culture, Object[] activationAttributes) em System.AppDomain.CreateInstanceAndUnwrap(String assemblyName, String typeName, Boolean ignoreCase, BindingFlags bindingAttr, Binder binder, Object[] args, CultureInfo culture, Object[] activationAttributes) em Microsoft.EntityFrameworkCore.Tools.AppDomainOperationExecutor..ctor(String assembly, String startupAssembly, String projectDir, String contentRootPath, String dataDirectory, String rootNamespace, String environment) em Microsoft.EntityFrameworkCore.Tools.Commands.ProjectCommandBase.CreateExecutor() em Microsoft.EntityFrameworkCore.Tools.Commands.MigrationsAddCommand.Execute() em Microsoft.DotNet.Cli.CommandLine.CommandLineApplication.Execute(String[] args) em Microsoft.EntityFrameworkCore.Tools.Program.Main(String[] args) Uma exce�ao foi acionada pelo destino de uma chamada.

Se puderem me ajudar ficarei agredecido

2 respostas

Olá Natan, tudo bem?

Pelo que vi, você instalou os pacotes na versão 3.1.6 e podem ter umas etapas a mais neste processo por causa disso.

Tente instalar seguinte pacote: Install-Package Microsoft.EntityFrameworkCore.Design.

Outra possibilidade é para pedir que o EF Core seja uma ferramenta global: dotnet tool install --global dotnet-ef.

Porém, a dica que mais facilitaria seria seguir os passos desta aula onde pede para instalar o pacote do SQL Server na versão 1.1, mas agora que já está tudo instalado, será necessário desinstalar os pacotes na versão 3.1.x, que seria com os seguintes comandos: Uninstall-Package Microsoft.EntityFrameworkCore e Uninstall-Package Microsoft.EntityFrameworkCore.SqlServer, para depois disso instalar na versão 1.1 com o comando: Install-Package Microsoft.EntityFrameworkCore.SqlServer -Version 1.1

Espero que alguma dessas dicas tenha ajudado!

solução!

Saudações Natan,

Se você quiser usar a versão mais recente, desinstale todas a versões atuais, pode visualizar elas clicando com o botão direito sobre o projeto > Dependencies > Packages > Remove

Ou pelo console:

Uninstall-Package Microsoft.EntityFrameworkCore
Uninstall-Package Microsoft.EntityFrameworkCore.SqlServer

Depois instale novamente com um comando genérico sem versão nenhuma:

Install-Package Microsoft.EntityFrameworkCore
Install-Package Microsoft.EntityFrameworkCore.Tools
Install-Package Microsoft.EntityFrameworkCore.Design
Install-Package Microsoft.EntityFrameworkCore.SqlServer

Dessa forma o Nuget irá instalar a versão adequada para seu projeto automaticamente, as aulas não são tão recentes é provável que você esteja rodando um projeto em versões que podem causar conflito.