J'ai mis à niveau une bibliothèque de classes standard .net d'Entity Framework Core 1.1 vers Entity Framework 2.0
J'essaie d'exécuter Add-Migration sur une bibliothèque de classes de base Entity Framework qui cible le framework .net 4.6.1.
Add-Migration MyMigration
Mais j'obtiens alors l'erreur suivante
System.IO.FileLoadException: impossible de charger le fichier ou l'assembly 'System.ValueTuple, version = 0.0.0.0, Culture = neutre, PublicKeyToken = cc7b13ffcd2ddd51' ou l'une de ses dépendances. La définition du manifeste de l'Assemblée localisée ne correspond pas à la référence de l'Assemblée. (Exception de HRESULT: 0x80131040) Nom du fichier: 'System.ValueTuple, Version = 0.0.0.0, Culture = neutre, PublicKeyToken = cc7b13ffcd2ddd51' à l'adresse Microsoft.EntityFrameworkCore.Metadata.Conventions.Internal.SharedTableConvention.Apply (modelBuilder InternalModelBuilder) sur Microsoft.EntityFrameworkCore.Metadata.Conventions.Internal.ConventionDispatcher.ImmediateConventionScope.OnModelBuilt (InternalModelBuilder modelBuilder) sur Microsoft.EntityFrameworkCore.Infrastructure.ModelSource.CreateModel (contexte DbContext, convention IConventionSetBuilderSetBuilder, validateur IModelValidator) à System.Collections.Concurrent.ConcurrentDictionary
2.GetOrAdd(TKey key, Func
2 valueFactory) sur Microsoft.EntityFrameworkCore.Internal.DbContextServices.CreateModel () sur Microsoft.EntityFrameworkCore.Internal.DbContextServices.get_Model () sur Microsoft.Extensions.DependencyInjection.ServiceLookup.CallSiteVisitor2.VisitCallSite(IServiceCallSite callSite, TArgument argument) at Microsoft.Extensions.DependencyInjection.ServiceLookup.CallSiteRuntimeResolver.VisitScoped(ScopedCallSite scopedCallSite, ServiceProvider provider) at Microsoft.Extensions.DependencyInjection.ServiceLookup.CallSiteVisitor
2.VisitCallSite (IServiceCallSite callSite, argument TArgument) sur Microsoft.Extensions.DependencyInjection.ServiceLookup.CallSiteRuntimeResolver.VisitConstructor (ConstructorCallSite constructorCallSite, fournisseur ServiceProvider) sur Microsoft.Extensions.DependencyInjection.ServiceLookup.CallSiteVisitor2.VisitCallSite(IServiceCallSite callSite, TArgument argument) at Microsoft.Extensions.DependencyInjection.ServiceLookup.CallSiteRuntimeResolver.VisitScoped(ScopedCallSite scopedCallSite, ServiceProvider provider) at Microsoft.Extensions.DependencyInjection.ServiceLookup.CallSiteVisitor
2.VisitCallSite (IServiceCallSite callSite, argument TArgument) sur Microsoft.Extensions.DependencyInjection.ServiceProvider. <> c__DisplayClass22_0.b__0 (fournisseur ServiceProvider) sur Microsoft.Extensions.DependencyInjection.ServiceProviderServiceExtensions.GetRequiredService (fournisseur IServiceProvider, Type serviceType) sur Microsoft.Extensions.DependencyInjection.ServiceProviderServiceExtensions.GetRequiredService [T] (fournisseur IServiceProvider) sur Microsoft.EntityFrameworkCore.DbContext.get_DbContextDependencies () sur Microsoft.EntityFrameworkCore.DbContext.get_InternalServiceProvider () à l'adresse Microsoft.EntityFrameworkCore.Infrastructure.AccessorExtensions.GetService [TService] (fabrique IInfrastructure1 accessor) at Microsoft.EntityFrameworkCore.Design.Internal.DbContextOperations.CreateContext(Func
1) sur Microsoft.EntityFrameworkCore.Design.Internal.DbContextOperations.CreateContext (String contextType) sur Microsoft.EntityFrameworkCore.Design.Internal.MigrationsOperations.AddMigration (nom de chaîne, chaîne outputDir, chaîne contextType) sur Microsoft.EntityFrameworkCore.Design.OperationExecutor.AddMigrationImpl (nom de chaîne, chaîne outputDir, chaîne contextType) sur Microsoft.EntityFrameworkCore.Design.OperationExecutor.OperationBase. <> c__DisplayClass3_0`1.b__0 () sur Microsoft.EntityFrameworkCore.Design.OperationExecutor.OperationBase.Execute (Action action)
J'ai ajouté le paquet de nuget de System.ValueTuple à mon csproj mais j'obtiens toujours l'erreur
<PackageReference Include="System.ValueTuple" Version="4.4.0" />
Ajoutez AutoGenerateBindingRedirects
et GenerateBindingRedirectsOutputType
à votre bibliothèque de classe csproj
par exemple.
<PropertyGroup>
<TargetFramework>net461</TargetFramework>
....
<AutoGenerateBindingRedirects>true</AutoGenerateBindingRedirects>
<GenerateBindingRedirectsOutputType>true</GenerateBindingRedirectsOutputType>
</PropertyGroup>
J'ai eu le même problème, et il a été corrigé après l'installation de .NET 4.7.1 Framework