2017-06-06 6 views
17

Microsoft just announced dass Entity Framework Core 2.0 jetzt auf .NET Standard 2.0 ausgeführt wird.Entity Framework Core 2.0 auf .NET 4.6.1

.Net-Standard 2.0 ist kompatibel (wenn das der richtige Begriff ist) mit .NET Framework 4.6.1.

Allerdings, wenn ich versuche, die latest NuGet package hinzufügen Ich erhalte einen Fehler mir zu sagen, dass ich die falsche Version bin mit:

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. 

Wenn nach der Ankündigung kann ich EF verwenden Core 2.0 mit .NET Framework 4.6. 1, kann jemand bitte erklären, und wenn möglich ein Beispiel geben, wie das aussehen würde.

+0

Schlagen Sie ein Problem hier melden: https://github.com/aspnet/EntityFramework/issues – ErikEJ

Antwort

3

Es scheint, dass Sie das NetStandard.Library.NetFramework NuGet-Paket einschließen müssen, um .NET Standard 2.0-Bibliotheken in ein .NET 4.6.1-Projekt einzubeziehen.

Beispiel der aktuellen Version in der packages.config Datei:

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

VS 2017 15.5 Vorschau 3 oder später tut dies für Sie "automatisch" – ErikEJ

+1

Dieses Paket wurde zugunsten von Nuget 3.6+ veraltet –

1

Neben der NETStandard.Library.NETFramework Paket zu installieren, können Sie auch durch Zugabe der folgenden auf Ihre älteren NuGet Kunden, dass es wirklich kompatibel zu erzählen haben *.csproj Datei.

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

Run Update-Package über Paket-Manager-Konsole, wird dies aktualisieren irgendwie magisch alle Pakete einschließlich .Net-Core, die Sie standardmäßig von der Aktualisierung sie über Nuget verhindern würde, weil es Netcore 2.0 Ziel benötigt, während Sie 4,6 peilen .1 obwohl es kompatibel sein sollte.

Projekt wird perfekt funktionieren, wenn Sie dies tun und hoffentlich bald werden Updates direkt über nuget lebensfähig sein, wie sie sein sollten.

1

zu Ihrem CSPROJ gehen und Ihre TargetFramework ändern

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

es

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