本文介绍了'System.ValueTuple, Version=0.0.0.0 在 .NET 4.6.1 类库上添加迁移需要的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我将 .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, Func2 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.CallSiteVisitor2.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.CallSiteVisitor2.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(Func1 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" />

推荐答案

AutoGenerateBindingRedirectsGenerateBindingRedirectsOutputType 添加到您的类库 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 类库上添加迁移需要的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!

10-27 10:23