web-dev-qa-db-ja.com

.NET 4.6.1上のEntity Framework Core 2.0

Microsoft 発表されたばかり Entity Framework Core 2.0が.NET Standard 2.0で実行されるようになりました。

.Net Standard 2.0は、.NET Framework 4.6.1と互換性があります(これが正しい用語である場合)。

しかし、 最新のNuGetパッケージ を追加しようとすると、間違ったバージョンを使用しているというエラーが表示されます。

 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.1でEF Core 2.0を使用できる場合は、誰か説明してください。可能であれば、それがどのようになるか例を示してください。

19
user281921

.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" />
5
user281921

NETStandard.Library.NETFrameworkパッケージでは、次のコードを*.csprojファイル。

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

.csprojに移動して、TargetFrameworkを変更します

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

それに

  <PropertyGroup>
    <TargetFramework>netcoreapp2.0</TargetFramework>
  </PropertyGroup>
2
Italo José

実行Update-Packageパッケージマネージャーコンソールを介して、これは何らかの方法で魔法のように.Net Coreを含むすべてのパケットを更新します。互換性があります。

これを行うと、プロジェクトは完全に機能し、すぐに更新が本来の目的どおりにNugetを介して直接実行可能になることを願っています。