Efcore: EF1.1.2 migrations relying on previous version of 'Microsoft.Extensions.FileProviders.Abstractions'

Created on 26 May 2017  路  2Comments  路  Source: dotnet/efcore

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)
closed-question

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.

<PropertyGroup>
    <AutoGenerateBindingRedirects>true</AutoGenerateBindingRedirects>
    <GenerateBindingRedirectsOutputType>true</GenerateBindingRedirectsOutputType>
</PropertyGroup>

All 2 comments

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!

Was this page helpful?
0 / 5 - 0 ratings