【问题标题】:EF Core Cosmos 3.0.0 incompatible with .NET CoreEF Core Cosmos 3.0.0 与 .NET Core 不兼容
【发布时间】:2020-01-02 19:19:17
【问题描述】:

在 ASP.NET Core (v 2.1.1) Web 应用程序中,我想将 EF Core 与 Cosmos DB 结合使用。为此,我需要添加 Microsoft.EntityFrameworkCore.Cosmos 包。

我可以安装old 2.2.0-preview3-35497 NuGet。

但是当前的3.0.0-preview8.19405.11 NuGet 抱怨

NU1202
Package Microsoft.EntityFrameworkCore.Cosmos 3.0.0-preview8.19405.11 
is not compatible with netcoreapp2.1 (.NETCoreApp,Version=v2.1).
Package Microsoft.EntityFrameworkCore.Cosmos 3.0.0-preview8.19405.11
supports: netstandard2.1 (.NETStandard,Version=v2.1)

在我看来,这个错误听起来像是这个 EF Core 提供程序仅支持 .NET 而不是最新版本的 .NET Core。

这对于 EF Core 提供者来说是完全出乎意料的。

我是否正确理解了错误,为什么新版本中有如此奇怪的变化以及如何解决?

【问题讨论】:

  • 您使用的是哪个版本的 .NET Core?我很确定您需要使用 .NET Core 3 preview8。
  • EF Core 3.0 包需要 .NET Core 3.0,这反过来又要求所有 ASP.NET Core 包也是 3.0 包。简而言之,如果您需要最新的 EF Core,则需要将您的应用升级到 ASP.NET Core 3.0 应用。
  • 另外,.NET Standard 不是 .NET Framework。它基本上是一个接口层,允许 .NET Framework、.NET Core、Unity、Xamarin 等兼容版本之间的互操作。但是,.NET Standard 2.1(不要与 2.0 混淆)实现目前由 .NET Core 3.0 提供。

标签: asp.net-core entity-framework-core azure-cosmosdb


【解决方案1】:

这个错误是因为 .Net Core 3.0 看起来是 .net 标准 2.1(官方不负责)。但是,Visual Studio 已经兼容了。

打开您的 .csproj 并将 TargetFramework 标记编辑为“netstandard2.1”:<TargetFramework>netstandard2.1</TargetFramework>

使它适用于所有项目并且可能有效;p

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2023-03-25
    • 1970-01-01
    • 2018-06-21
    • 2022-07-15
    • 2017-04-23
    • 2017-02-12
    • 1970-01-01
    相关资源
    最近更新 更多