.NET 4.6.1类库上的“添加迁移”需要'System.ValueTuple,版本= 0.0.0.0 [英] 'System.ValueTuple, Version=0.0.0.0 required for Add-Migration on .NET 4.6.1 Class Library

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

问题描述

我将.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

我试图在Entity Framework Core类库上运行添加迁移面向.net Framework 4.6.1

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,版本= 0.0.0.0,区域性=中性,PublicKeyToken = cc7b13ffcd2ddd51'或其依赖项之一。找到的程序集的清单定义与程序集引用不匹配。 (来自HRESULT的异常:0x80131040)
文件名:'System.ValueTuple,版本= 0.0.0.0,区域性=中性,PublicKeyToken = cc7b13ffcd2ddd51'
,位于Microsoft.EntityFrameworkCore.Metadata.Conventions.Internal.SharedTableConvention。在Microsoft.EntityFrameworkCore.Metadata.Conventions.Internal.ConventionDispatcher.ImmediateConventionScope.OnModelBuilt(InternalModelBuilder modelBuilder)处应用(InternalModelBuilder modelBuilder)
在Microsoft.EntityFrameworkCore.Infrastructure.ModelSourceBuild.CreateModel(DbContext context,IConventionSeter IModelValidator验证程序)System.Collections.Concurrent.ConcurrentDictionary 2.GetOrAdd(TKey键,Func 2 valueFactory)
在Microsoft.EntityFrameworkCore.Internal。 Microsoft.EntityFrameworkCore.Internal.DbContextServices.get_Model()中的DbContextServices.CreateModel()
Microsoft.Extensions.DependencyInjection.ServiceLookup.CallSiteVisitor 2.VisitCall Microsoft.Extensions.DependencyInjection.ServiceLookup.CallSiteRuntimeResolver.VisitScoped(SpectrumCallSite scopedCallSite,ServiceProvider provider)的站点(IServiceCallSite callSite,TArgument参数)
Microsoft.Extensions.DependencyInjection.ServiceLookup.CallS $ Viitor c> 2.VisitCallSite(IServiceCallSite callSite,TArgument参数)
在Microsoft.Extensions.DependencyInjection.ServiceLookup.CallSiteRuntimeResolver.VisitConstructor(ConstructorCallSite构造器CallSite,服务提供商提供者)
在Microsoft.Extensions.DependencyInjectupService。 code> 2.VisitCallSite(IServiceCallSite callSite,TArgument参数)Microsoft.Extensions.DependencyInjection.ServiceLookup.CallSiteRuntimeResolver.VisitScoped(ScopedCallSite scopedCallSite,ServiceProvider provider)中的
Microsoft.Extensions.DependencyInjectionion中的
.CallSiteVisitor
2.VisitCallSite(IServiceCallSite callSite,参数ar )Microsoft.Extensions.DependencyInjection.ServiceProvider中的$ g $ b)<> c__DisplayClass22_0.b__0(ServiceProvider提供者)Microsoft.Extensions.DependencyInjection.ServiceProviderServiceExtensions.GetRequiredService(IServiceProvider提供者,类型serviceType)
在Microsoft.Extensions.DependencyInjection.ServiceProviderServiceExtensions.GetRequiredService [T](IServiceProvider提供程序)在Microsoft.EntityFrameworkCore.DbContext.get_DbContextDependencies()
在Microsoft.EntityFrameworkCore.DbContext.get_InternalServiceProvider()
Microsoft.EntityFrameworkCore.Design.Internal.DbContextOperations.CreateContext(Func 1 factory)上的Microsoft.EntityFrameworkCore.Infrastructure.AccessorExtensions.GetService [TService](IInfrastructure 1 accessor)
)Microsoft.EntityFrameworkCore.Design.Internal.DbContextOperations.CreateContext(String contextType)中的
Microsoft.EntityFrameworkCore.Design.Intern中的
al.MigrationsOperations.AddMigration(字符串名称,字符串outputDir,字符串contextType)
在Microsoft.EntityFrameworkCore.Design.OperationExecutor.AddMigrationImpl(字符串名称,字符串outputDir,字符串contextType)
在Microsoft.EntityFrameworkCore.Design。 OperationExecutor.OperationBase。<> c__DisplayClass3_0`1.b__0()
at Microsoft.EntityFrameworkCore.Design.OperationExecutor.OperationBase.Execute(Action action)

System.IO.FileLoadException: Could not load file or assembly 'System.ValueTuple, Version=0.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51' or one of its dependencies. The located assembly's manifest definition does not match the assembly reference. (Exception from HRESULT: 0x80131040) File name: 'System.ValueTuple, Version=0.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51' at Microsoft.EntityFrameworkCore.Metadata.Conventions.Internal.SharedTableConvention.Apply(InternalModelBuilder modelBuilder) at Microsoft.EntityFrameworkCore.Metadata.Conventions.Internal.ConventionDispatcher.ImmediateConventionScope.OnModelBuilt(InternalModelBuilder modelBuilder) at Microsoft.EntityFrameworkCore.Infrastructure.ModelSource.CreateModel(DbContext context, IConventionSetBuilder conventionSetBuilder, IModelValidator validator) at System.Collections.Concurrent.ConcurrentDictionary2.GetOrAdd(TKey key, Func2 valueFactory) at Microsoft.EntityFrameworkCore.Internal.DbContextServices.CreateModel() at Microsoft.EntityFrameworkCore.Internal.DbContextServices.get_Model() at 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.CallSiteVisitor2.VisitCallSite(IServiceCallSite callSite, TArgument argument) at Microsoft.Extensions.DependencyInjection.ServiceLookup.CallSiteRuntimeResolver.VisitConstructor(ConstructorCallSite constructorCallSite, ServiceProvider provider) at 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.CallSiteVisitor2.VisitCallSite(IServiceCallSite callSite, TArgument argument) at Microsoft.Extensions.DependencyInjection.ServiceProvider.<>c__DisplayClass22_0.b__0(ServiceProvider provider) at Microsoft.Extensions.DependencyInjection.ServiceProviderServiceExtensions.GetRequiredService(IServiceProvider provider, Type serviceType) at Microsoft.Extensions.DependencyInjection.ServiceProviderServiceExtensions.GetRequiredService[T](IServiceProvider provider) at Microsoft.EntityFrameworkCore.DbContext.get_DbContextDependencies() at Microsoft.EntityFrameworkCore.DbContext.get_InternalServiceProvider() at Microsoft.EntityFrameworkCore.Infrastructure.AccessorExtensions.GetService[TService](IInfrastructure1 accessor) at Microsoft.EntityFrameworkCore.Design.Internal.DbContextOperations.CreateContext(Func1 factory) at Microsoft.EntityFrameworkCore.Design.Internal.DbContextOperations.CreateContext(String contextType) at Microsoft.EntityFrameworkCore.Design.Internal.MigrationsOperations.AddMigration(String name, String outputDir, String contextType) at Microsoft.EntityFrameworkCore.Design.OperationExecutor.AddMigrationImpl(String name, String outputDir, String contextType) at Microsoft.EntityFrameworkCore.Design.OperationExecutor.OperationBase.<>c__DisplayClass3_0`1.b__0() at Microsoft.EntityFrameworkCore.Design.OperationExecutor.OperationBase.Execute(Action action)

我将nuget包System.ValueTuple添加到了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

eg

<PropertyGroup>
    <TargetFramework>net461</TargetFramework>

    ....

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

这篇关于.NET 4.6.1类库上的“添加迁移”需要'System.ValueTuple,版本= 0.0.0.0的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
相关文章
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆