Microsoft just announced,Entity Framework Core 2.0现在将在.NET Standard 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 Core 2.0与.NET Framework 4.6.1一起使用,有人可以解释一下,如果可能的话,举个例子说明一下。
答案 0 :(得分:4)
为了在.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" />
答案 1 :(得分:2)
除了安装NETStandard.Library.NETFramework
软件包之外,您还可能需要通过在*.csproj
文件中添加以下内容来告诉旧版NuGet客户端它真正兼容。
<PropertyGroup>
<PackageTargetFallback>netstandard2.0</PackageTargetFallback>
</PropertyGroup>
答案 2 :(得分:2)
转到你的.csproj并更改你的TargetFramework
<PropertyGroup>
<PackageTargetFallback>netstandard2.0</PackageTargetFallback>
</PropertyGroup>
到它
<PropertyGroup>
<TargetFramework>netcoreapp2.0</TargetFramework>
</PropertyGroup>
答案 3 :(得分:0)
通过软件包管理器控制台运行Update-Package
,这将以某种方式神奇地更新所有数据包,包括.Net Core,默认情况下会阻止您通过Nuget更新它们,因为它需要NetCore 2.0目标,而您需要目标4.6.1即使它应该兼容。
如果您这样做,项目将完美运行,并希望很快就可以直接通过nuget实现更新。