问题描述
我将 .net 标准类库从 Entity Framework Core 1.1 升级到 Entity Framework 2.0
I upgraded a .net standard class library from Entity Framework Core 1.1 to Entity Framework 2.0
我正在尝试在面向 .net framework 4.6.1 的实体框架核心类库上运行 Add-Migration
I am trying to run Add-Migration on an Entity Framework Core Class Library that targets .net framework 4.6.1
Add-Migration MyMigration
但我随后收到以下错误
System.IO.FileLoadException:无法加载文件或程序集System.ValueTuple,Version=0.0.0.0,Culture=neutral,PublicKeyToken=cc7b13ffcd2ddd51"或其依赖项之一.定位的程序集的清单定义与程序集引用不匹配.(来自 HRESULT 的异常:0x80131040)文件名:'System.ValueTuple,版本=0.0.0.0,文化=中性,PublicKeyToken=cc7b13ffcd2ddd51'在 Microsoft.EntityFrameworkCore.Metadata.Conventions.Internal.SharedTableConvention.Apply(InternalModelBuilder modelBuilder)在 Microsoft.EntityFrameworkCore.Metadata.Conventions.Internal.ConventionDispatcher.ImmediateConventionScope.OnModelBuilt(InternalModelBuilder modelBuilder)在 Microsoft.EntityFrameworkCore.Infrastructure.ModelSource.CreateModel(DbContext 上下文,IConventionSetBuilder 约定SetBuilder,IModelValidator 验证器)在 System.Collections.Concurrent.ConcurrentDictionary2.GetOrAdd(TKey key, Func
2 valueFactory)在 Microsoft.EntityFrameworkCore.Internal.DbContextServices.CreateModel()在 Microsoft.EntityFrameworkCore.Internal.DbContextServices.get_Model()在 Microsoft.Extensions.DependencyInjection.ServiceLookup.CallSiteVisitor2.VisitCallSite(IServiceCallSite callSite, TArgument 参数)在 Microsoft.Extensions.DependencyInjection.ServiceLookup.CallSiteRuntimeResolver.VisitScoped(ScopedCallSite scopedCallSite, ServiceProvider provider)在 Microsoft.Extensions.DependencyInjection.ServiceLookup.CallSiteVisitor
2.VisitCallSite(IServiceCallSite callSite, TArgument 参数)在 Microsoft.Extensions.DependencyInjection.ServiceLookup.CallSiteRuntimeResolver.VisitConstructor(ConstructorCallSite constructorCallSite, ServiceProvider provider)在 Microsoft.Extensions.DependencyInjection.ServiceLookup.CallSiteVisitor2.VisitCallSite(IServiceCallSite callSite, TArgument 参数)在 Microsoft.Extensions.DependencyInjection.ServiceLookup.CallSiteRuntimeResolver.VisitScoped(ScopedCallSite scopedCallSite, ServiceProvider provider)在 Microsoft.Extensions.DependencyInjection.ServiceLookup.CallSiteVisitor
2.VisitCallSite(IServiceCallSite callSite, TArgument 参数)在 Microsoft.Extensions.DependencyInjection.ServiceProvider.<>c__DisplayClass22_0.b__0(ServiceProvider provider)在 Microsoft.Extensions.DependencyInjection.ServiceProviderServiceExtensions.GetRequiredService(IServiceProvider provider, Type serviceType)在 Microsoft.Extensions.DependencyInjection.ServiceProviderServiceExtensions.GetRequiredService[T](IServiceProvider provider)在 Microsoft.EntityFrameworkCore.DbContext.get_DbContextDependencies()在 Microsoft.EntityFrameworkCore.DbContext.get_InternalServiceProvider()在 Microsoft.EntityFrameworkCore.Infrastructure.AccessorExtensions.GetService[TService](IInfrastructure1 accessor)在 Microsoft.EntityFrameworkCore.Design.Internal.DbContextOperations.CreateContext(Func
1 factory)在 Microsoft.EntityFrameworkCore.Design.Internal.DbContextOperations.CreateContext(String contextType)在 Microsoft.EntityFrameworkCore.Design.Internal.MigrationsOperations.AddMigration(String name, String outputDir, String contextType)在 Microsoft.EntityFrameworkCore.Design.OperationExecutor.AddMigrationImpl(String name, String outputDir, String contextType)在 Microsoft.EntityFrameworkCore.Design.OperationExecutor.OperationBase.<>c__DisplayClass3_0`1.b__0()在 Microsoft.EntityFrameworkCore.Design.OperationExecutor.OperationBase.Execute(Action action)
我将 System.ValueTuple 的 nuget 包添加到我的 csproj 但我仍然收到错误
I added the nuget package of System.ValueTuple to my csproj but I still get the error
<PackageReference Include="System.ValueTuple" Version="4.4.0" />
推荐答案
将 AutoGenerateBindingRedirects
和 GenerateBindingRedirectsOutputType
添加到您的类库 csproj
Add AutoGenerateBindingRedirects
and GenerateBindingRedirectsOutputType
to your class library csproj
例如
<PropertyGroup>
<TargetFramework>net461</TargetFramework>
....
<AutoGenerateBindingRedirects>true</AutoGenerateBindingRedirects>
<GenerateBindingRedirectsOutputType>true</GenerateBindingRedirectsOutputType>
</PropertyGroup>
这篇关于'System.ValueTuple, Version=0.0.0.0 在 .NET 4.6.1 类库上添加迁移需要的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!