In VS2017, I've a library class where I store my context and models which uses migrations. I reference these packages in my .csproj:
<ItemGroup>
<PackageReference Include="Microsoft.EntityFrameworkCore.SqlServer" Version="1.1.2" />
<PackageReference Include="Microsoft.EntityFrameworkCore.Tools" Version="1.1.1" />
<PackageReference Include="Microsoft.EntityFrameworkCore.Design" Version="1.1.2" />
<PackageReference Include="Microsoft.Extensions.Configuration" Version="1.1.2" />
<PackageReference Include="Microsoft.Extensions.Configuration.Json" Version="1.1.2" />
</ItemGroup>
<ItemGroup>
<DotNetCliToolReference Include="Microsoft.EntityFrameworkCore.Tools.DotNet" Version="1.0.1" />
</ItemGroup>
When trying to add a new migration, I receive this exception:
System.IO.FileLoadException: No se puede cargar el archivo o ensamblado 'Microsoft.Extensions.FileProviders.Abstractions, Version=1.1.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60' ni una de sus dependencias. La definici垄n del manifiesto del ensamblado no coincide con la referencia al ensamblado. (Excepci垄n de HRESULT: 0x80131040)
Nombre de archivo: 'Microsoft.Extensions.FileProviders.Abstractions, Version=1.1.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60'
en Microsoft.EntityFrameworkCore.Design.Internal.StartupInvoker.ConfigureHostServices(IServiceCollection services)
en Microsoft.EntityFrameworkCore.Design.Internal.StartupInvoker.ConfigureServices()
en Microsoft.EntityFrameworkCore.Design.Internal.DbContextOperations..ctor(IOperationReporter reporter, Assembly assembly, Assembly startupAssembly, String environment, String contentRootPath)
en Microsoft.EntityFrameworkCore.Design.Internal.MigrationsOperations..ctor(IOperationReporter reporter, Assembly assembly, Assembly startupAssembly, String environment, String projectDir, String contentRootPath, String rootNamespace)
en Microsoft.EntityFrameworkCore.Design.OperationExecutor.<>c__DisplayClass4_0.<.ctor>b__4()
en Microsoft.EntityFrameworkCore.Internal.LazyRef`1.get_Value()
en Microsoft.EntityFrameworkCore.Design.OperationExecutor.AddMigrationImpl(String name, String outputDir, String contextType)
en Microsoft.EntityFrameworkCore.Design.OperationExecutor.OperationBase.<>c__DisplayClass3_0`1.<Execute>b__0()
en Microsoft.EntityFrameworkCore.Design.OperationExecutor.OperationBase.Execute(Action action)
If I refer to version 1.1.0 explicitly:
<PackageReference Include="Microsoft.Extensions.FileProviders.Abstractions" Version="1.1.0" />
it works but giving me the following warnings:
Degradaci贸n del paquete detectada: Microsoft.Extensions.FileProviders.Abstractions desde 1.1.1 a 1.1.0
myLibrary.BD (>= 1.0.0) -> Microsoft.Extensions.Configuration.Json (>= 1.1.2) -> Microsoft.Extensions.Configuration.FileExtensions (>= 1.1.2) -> Microsoft.Extensions.FileProviders.Physical (>= 1.1.1) -> Microsoft.Extensions.FileProviders.Abstractions (>= 1.1.1)
myLibrary.BD (>= 1.0.0) -> Microsoft.Extensions.FileProviders.Abstractions (>= 1.1.0)
Are you targeting .NET Framework in your Class Library?
If so, you need to add the following to your csproj for NuGet to generate binding redirects.
<PropertyGroup>
<AutoGenerateBindingRedirects>true</AutoGenerateBindingRedirects>
<GenerateBindingRedirectsOutputType>true</GenerateBindingRedirectsOutputType>
</PropertyGroup>
Hi! Tested and now it works great!
Thank you for your help!
Most helpful comment
Are you targeting .NET Framework in your Class Library?
If so, you need to add the following to your csproj for NuGet to generate binding redirects.