2017-06-06 38 views
17

Microsoft just announced że Entity Framework Core 2.0 będzie teraz działał na .NET Standard 2.0.Entity Framework Core 2.0 na .NET 4.6.1

.Net Standard 2.0 jest zgodny (jeśli jest to odpowiedni termin) z .NET Framework 4.6.1.

Jednak gdy próbuję dodać latest NuGet package otrzymuję komunikat o błędzie informujący mnie, że używam złą wersję:

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. 

Jeżeli zgodnie z zapowiedziami mogę używać EF Rdzeń 2.0 z .NET Framework 4.6. 1, czy ktoś może wyjaśnić, a jeśli to możliwe podać przykład tego, jak będzie wyglądać.

+0

Proponuję zgłosić problem tutaj: https://github.com/aspnet/EntityFramework/issues – ErikEJ

Odpowiedz

3

Wygląda na to, że w celu włączenia bibliotek .NET Standard 2.0 do projektu .NET 4.6.1 należy uwzględnić pakiet NuGet NetStandard.Library.NetFramework.

Przykład aktualnej wersji w pliku packages.config:

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

VS 2017 15.5 Podgląd 3 lub nowszy robi to dla Ciebie "automagicznie" – ErikEJ

+1

Ten pakiet został wycofany na rzecz używania Nuget 3.6+ –

1

Oprócz zainstalowania pakietu NETStandard.Library.NETFramework, można również powiedzieć starszych klientów Nuget że to naprawdę jest kompatybilny poprzez dodanie następujących do listy *.csproj plik.

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

Run Update-Package pośrednictwem konsoli Package Manager będzie to jakiś magiczny sposób zaktualizować wszystkie pakiety w tym .Net rdzeń, który domyślnie będzie uniemożliwiają ich aktualizacji poprzez Nuget, ponieważ musi NetCore 2.0 cel, gdy jesteś kierowania 4.6 .1 nawet jeśli powinien być kompatybilny.

Projekt będzie działał idealnie, jeśli to zrobisz i miejmy nadzieję, że wkrótce aktualizacje staną się opłacalne bezpośrednio przez nuget, tak jak to miało być.

1

przejdź do .csproj i zmienić swoją TargetFramework

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

niej

<PropertyGroup> 
    <TargetFramework>netcoreapp2.0</TargetFramework> 
    </PropertyGroup> 
Powiązane problemy