2017-06-06 19 views
17

Microsoft just announcedエンティティフレームワークコア2.0は.NET Standard 2.0上で動作するようになりました。エンティティフレームワークコア2.0 on .NET 4.6.1

.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. 

の発表によると、私は、.NET Frameworkの4.6とEFコア2.0を使用することができます。 1、誰か説明してください、可能であれば、そのように見えるものの例を挙げてください。

+0

あなたの.csprojに行き、そこにあなたのTargetFramework

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

を変更:https://github.com/aspnet/EntityFramework/issues – ErikEJ

答えて

3

.NET Standard 2.0ライブラリを.NET 4.6.1プロジェクトに組み込むには、NetStandard.Library.NetFramework NuGetパッケージを含める必要があるようです。

packages.configファイル内の現在のバージョンの例:NETStandard.Library.NETFrameworkパッケージをインストールすることに加え

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

VS 2017 15.5 preview 3以降はこれを自動的に行います – ErikEJ

+1

このパッケージは廃止され、Nuget 3.6+ –

1

、あなたもそれは本当にあなたに以下を追加することにより、互換性があることを古いNuGetクライアントに伝える必要がありあり*.csprojファイル。

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

パッケージマネージャコンソールから実行Update-Packageあなたが4.6をターゲットにしている間、それは、NetCore 2.0ターゲットを必要とするため、これは何とか魔法、デフォルトでNuget経由でそれらを更新することを防ぐでしょう。ネットコアを含むすべてのパケットを更新します.1互換性があるはずですが。

これを行うと、プロジェクトは完璧に動作します。うまくいけば間もなく、更新は直感的にナゲットを通じて実行可能になります。

1

あなたはここに問題を報告する提案

<PropertyGroup> 
    <TargetFramework>netcoreapp2.0</TargetFramework> 
    </PropertyGroup> 
関連する問題