Entity framework core ';System.ValueTuple,在.NET 4.6.1类库上添加迁移所需的版本=0.0.0.0
我将.net标准类库从Entity Framework Core 1.1升级到Entity Framework 2.0 我正在尝试在实体框架核心类库上运行添加迁移,该类库的目标是.NETFramework 4.6.1Entity framework core ';System.ValueTuple,在.NET 4.6.1类库上添加迁移所需的版本=0.0.0.0,entity-framework-core,Entity Framework Core,我将.net标准类库从Entity Framework Core 1.1升级到Entity Framework 2.0 我正在尝试在实体框架核心类库上运行添加迁移,该类库的目标是.NETFramework 4.6.1 Add-Migration MyMigration 但是我得到了下面的错误 System.IO.FileLoadException:无法加载文件或程序集“System.ValueTuple,版本=0.0.0,区域性=neutral,PublicKeyToken=CC7B13FFC
Add-Migration MyMigration
但是我得到了下面的错误
System.IO.FileLoadException:无法加载文件或程序集“System.ValueTuple,版本=0.0.0,区域性=neutral,PublicKeyToken=CC7B13FFCD2DD51”或其依赖项之一。定位的程序集清单定义与程序集引用不匹配。(来自HRESULT的异常:0x8013100)
文件名:“System.ValueTuple,版本=0.0.0.0,区域性=中性,PublicKeyToken=CC7B13FFCD2DD51”
位于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键,Func
2值工厂)
在Microsoft.EntityFrameworkCore.Internal.DbContextServices.CreateModel()中
在Microsoft.EntityFrameworkCore.Internal.DbContextServices.get_Model()中
位于Microsoft.Extensions.DependencyInjection.ServiceLookup.CallSiteVisitor2.VisitCallSite(IServiceCallSite callSite,Target参数)
位于Microsoft.Extensions.DependencyInjection.ServiceLookup.CallSiteRuntimeResolver.VisitScoped(ScopedCallSite ScopedCallSite,ServiceProvider提供程序)
位于Microsoft.Extensions.DependencyInjection.ServiceLookup.CallSiteVisitor
2.VisitCallSite(IServiceCallSite callSite,Target参数)
位于Microsoft.Extensions.DependencyInjection.ServiceLookup.CallSiteRuntimeResolver.VisitConstructor(ConstructorCallSite ConstructorCallSite,ServiceProvider提供程序)
位于Microsoft.Extensions.DependencyInjection.ServiceLookup.CallSiteVisitor2.VisitCallSite(IServiceCallSite callSite,Target参数)
位于Microsoft.Extensions.DependencyInjection.ServiceLookup.CallSiteRuntimeResolver.VisitScoped(ScopedCallSite ScopedCallSite,ServiceProvider提供程序)
位于Microsoft.Extensions.DependencyInjection.ServiceLookup.CallSiteVisitor
2.VisitCallSite(IServiceCallSite callSite,Target参数)
在Microsoft.Extensions.DependencyInjection.ServiceProvider.c\u DisplayClass22\u 0.b\u 0(ServiceProvider provider)
位于Microsoft.Extensions.DependencyInjection.ServiceProviderServiceExtensions.GetRequiredService(IServiceProvider提供程序,键入serviceType)
位于Microsoft.Extensions.DependencyInjection.ServiceProviderServiceExtensions.GetRequiredService[T](IServiceProvider提供程序)
在Microsoft.EntityFrameworkCore.DbContext.get_DbContextDependencies()中
在Microsoft.EntityFrameworkCore.DbContext.get\u InternalServiceProvider()中
位于Microsoft.EntityFrameworkCore.Infrastructure.AccessorExtensions.GetService[TService](IInfrastructure1访问器)
在Microsoft.EntityFrameworkCore.Design.Internal.DbContextOperations.CreateContext(funct
1 factory)
位于Microsoft.EntityFrameworkCore.Design.Internal.DbContextOperations.CreateContext(字符串contextType)
位于Microsoft.EntityFrameworkCore.Design.Internal.MigrationsOperations.AddMigration(字符串名称、字符串输出目录、字符串上下文类型)
位于Microsoft.EntityFrameworkCore.Design.OperationExecutor.AddMigrationImpl(字符串名称、字符串输出目录、字符串上下文类型)
在Microsoft.EntityFrameworkCore.Design.OperationExecutor.OperationBase.c__DisplayClass3_0`1.b__0()中
位于Microsoft.EntityFrameworkCore.Design.OperationExecutor.OperationBase.Execute(操作)
我将System.ValueTuple的nuget包添加到我的csproj中,但仍然得到错误
<PackageReference Include="System.ValueTuple" Version="4.4.0" />
将
自动生成BindingRedirects
和生成BindingRedirectSoutputType
添加到类库csproj
e、 g
net461
....
真的
真的
我也遇到了同样的问题,在安装.NET 4.7.1 framework之后,它得到了修复。由于StructureMap未能实例化Entity framework Core的dbContext,因此出现了以下可爱的错误:
尝试创建“[NameOfController]”类型的控制器时出错。确保控制器具有无参数公共构造函数
为了使其在.NET Framework 4.6.2中运行,我必须做比这里提供的答案更多的工作:
安装nugets(源代码:)
- System.Threading.Tasks.Extensions(我使用了最新的v4.5.2)
- System.ValueTuple(我使用了旧的4.3.1)
真的
真的
和web.config(来源:各种)
...
...
...
那么您是否也更改了类库的目标框架?因为我的类库项目说:netstandard2.0我也应该改变吗?不,你不应该像我的项目目标那样做。netframework而不是。netcore。只需添加上面提到的两个属性,看看是否有效。
<PropertyGroup>
<TargetFramework>net461</TargetFramework>
....
<AutoGenerateBindingRedirects>true</AutoGenerateBindingRedirects>
<GenerateBindingRedirectsOutputType>true</GenerateBindingRedirectsOutputType>
</PropertyGroup>