Entity framework .NET 4.6.1上的实体框架核心2.0

Entity framework .NET 4.6.1上的实体框架核心2.0,entity-framework,entity-framework-core,Entity Framework,Entity Framework Core,微软表示,EntityFrameworkCore2.0现在将在.NET标准2.0上运行 .Net标准2.0与.Net Framework 4.6.1兼容(如果这里的术语正确的话) 但是,当我尝试添加时,我得到一个错误,告诉我使用了错误的版本: Install-Package : Could not install package 'Microsoft.EntityFrameworkCore.SqlServer 2.0.0-preview2-25332'. You are trying

微软表示,EntityFrameworkCore2.0现在将在.NET标准2.0上运行

.Net标准2.0与.Net Framework 4.6.1兼容(如果这里的术语正确的话)

但是,当我尝试添加时,我得到一个错误,告诉我使用了错误的版本:

 Install-Package : Could not install package 
 'Microsoft.EntityFrameworkCore.SqlServer 2.0.0-preview2-25332'. You are 
 trying to install this package into a project that targets 
 '.NETFramework,Version=v4.6.1', but 
 the package does not contain any assembly references or content files 
 that are compatible with that framework. 

如果根据公告,我可以将EF Core 2.0与.NET Framework 4.6.1一起使用,请有人解释一下,如果可能的话,请给出一个例子。看来,为了在.NET 4.6.1项目中包含.NET标准2.0库,您需要包含NetStandard.Library.NetFramework NuGet包

packages.config文件中的当前版本示例:

<package id="NETStandard.Library.NETFramework" version="2.0.0-preview1-25305-02" targetFramework="net461" />

除了安装
NETStandard.Library.NETFramework
软件包外,您还可能需要通过向
*.csproj
文件中添加以下内容来告诉旧版NuGet客户端它确实是兼容的

<PropertyGroup>
  <PackageTargetFallback>netstandard2.0</PackageTargetFallback>
</PropertyGroup>

netstandard2.0

通过Package Manager控制台运行
Update Package
,这将以某种方式神奇地更新包括.Net Core在内的所有数据包,默认情况下,这将阻止您通过Nuget进行更新,因为它需要NetCore 2.0目标,而您的目标是4.6.1,即使它应该兼容


如果您这样做,项目将完美运行,希望很快可以通过nuget直接实现预期的更新。

转到您的.csproj并更改您的TargetFramework

<PropertyGroup>
  <PackageTargetFallback>netstandard2.0</PackageTargetFallback>
</PropertyGroup>

netstandard2.0
对它

  <PropertyGroup>
    <TargetFramework>netcoreapp2.0</TargetFramework>
  </PropertyGroup>

netcoreapp2.0

建议您在此报告一个问题:VS 2017 15.5 preview 3或更高版本“自动”为您执行此操作此软件包已被弃用,转而使用Nuget 3.6+@AlexWiese是正确的。我还想指出,在VS2015下使用nuget 3.6存在一个陷阱,它似乎有一个缺陷。然而,我用2017年来安装这个项目。