.NET 4.6.1上的Entity Framework Core 2.0
Microsoft just announced实体框架Core 2.0现在将运行在.NET Standard 2.0上。.NET 4.6.1上的Entity Framework Core 2.0
.Net Standard 2.0与.NET Framework 4.6.1兼容(如果这是正确的话)。
然而,当我尝试添加latest NuGet package我得到一个错误,告诉我,我使用了错误的版本:
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核心2.0和.NET框架4.6。 1,请有人解释一下,如果可能的话,举一个例子,看看会是什么样子。
看来,为了在.NET 4.6.1项目中包含.NET Standard 2.0库,您需要包含NetStandard.Library.NetFramework NuGet包。当前版本的packages.config文件
例子:
<package id="NETStandard.Library.NETFramework" version="2.0.0-preview1-25305-02" targetFramework="net461" />
VS 2017 15.5预览3或更高版本为你自动“自动” – ErikEJ
这个软件包已被弃用,赞成使用Nuget 3.6+ –
除了安装NETStandard.Library.NETFramework
包,你可能还需要告诉年长的NuGet客户,这确实是通过添加以下到您的兼容*.csproj
文件。
<PropertyGroup>
<PackageTargetFallback>netstandard2.0</PackageTargetFallback>
</PropertyGroup>
通过包管理器控制台运行Update-Package
,这将神奇地更新所有的数据包包括.Net核心,默认情况下会阻止你通过的NuGet更新它们,因为它需要磊2.0的目标,而你的目标4.6 .1即使它应该是兼容的。
如果你这样做,项目将会完美地工作,并希望尽快更新将直接通过nuget,因为他们的意图是可行的。
去你的.csproj和改变你的TargetFramework
<PropertyGroup>
<PackageTargetFallback>netstandard2.0</PackageTargetFallback>
</PropertyGroup>
它
<PropertyGroup>
<TargetFramework>netcoreapp2.0</TargetFramework>
</PropertyGroup>
建议你在这里报告的一个问题:https://github.com/aspnet/EntityFramework/issues – ErikEJ