【问题标题】:Can I update to .Net 5 NuGet packages even if I'm using .Net Core 3.1?即使我使用的是 .Net Core 3.1,我是否可以更新到 .Net 5 NuGet 包?
【发布时间】:2020-11-21 16:02:47
【问题描述】:

我正在寻找有关我的项目库的一些 NuGet 更新。我看到有很多 Microsoft 库更新到 v5.0.0。

根据我的知识,我认为这些是随 .Net 5.0 发布的新依赖项,我不确定是否可以使用 .Net Core 3.1 项目将这些库更新到最新版本。

即使我正在使用/构建 .Net Core 3.1 项目,我也可以更新到 v5.0.0 库吗?

【问题讨论】:

  • 如果你已经有了源代码控制(比如 Git),一个实验可以告诉你一切。
  • 但这并不能保证它是 100% 的生产证明。 Microsoft 文档对此没有任何解释
  • 什么都没有? docs.microsoft.com/en-us/ef/core/what-is-new/ef-core-5.0/…EF Core 5 正式支持 .NET Core 3.1(虽然微软应该更新这个页面让它更清晰)。
  • 谢谢@Lez Li,我无法找到这个页面,我同意你的看法,它可以更清楚。无论如何,这部分回答了我的问题,不仅仅是关于 EF Core。其他系统库呢?我认为 Microsoft 可以更清楚地了解这个主题,因为在我看来,这对于只需要在 .net 5 发布后更新包的开发人员来说同样重要。
  • 对于单独的 Microsoft 包,如果任何内容仅适用于 .NET 5,则它们应仅针对 net5 而不是 netstandard2.1(.NET Core 3.1 可以使用)。尽管微软需要进一步澄清,但我认为我们已经掌握了一些线索。

标签: .net-core nuget visual-studio-mac .net-core-3.1 .net-5


【解决方案1】:

很遗憾,您无法将许多这些最新的 Nuget 包更新到 5.0。原因是最新的 Nuget 包版本主要是为 .NET 5 编写的,而且由于 API 存在差异,Nuget 包管理器通常甚至会阻止您安装它们。话虽如此,可能会有一些地方允许安装,但如果您打算将应用程序保留在 .NET Core 3.1 上,我不建议您这样做。它很可能会导致一些难以调试的不一致。请谨慎行事,或将您的项目升级到 .NET 5。

【讨论】:

  • 不幸的是,.NET Core 3.1 项目可以使用面向 .NET Standard 2.1 的包,而 Microsoft 不会阻止此类。使用像 docs.microsoft.com/en-us/ef/core/what-is-new/ef-core-5.0/… 这样的官方说法,.NET Core 3.1 也可以使用一些新的包(如果不是全部的话)。我同意建议谨慎,但“为 .NET 5 明确编写”是不正确的。
  • 对评论进行了修改。它们主要是为 .NET 5 编写的,而其他目标框架则处于次要地位。希望这可以更好地说明。
【解决方案2】:

我刚刚完成了同样的事情。我有很多 3.1 和 NET Standard2.0 库项目的 3.1 核心应用程序,并且刚刚将所有这些库更新到版本 5。所有库都工作正常,我可以编译它们。但我无法编译我的主 Web 应用程序。它开始给出一些工作人员需要.net5 的奇怪错误。也许它可以修复,但我认为浪费我的时间没有多大意义,因为无论如何我都计划在几天内搬到 net5。所以我决定立即搬到net5。我已经安装了 net 5.0 SDK 并将我的应用程序的目标框架更改为 net5.0。现在一切正常,我对我的 net5.0 应用程序很满意。我有一些 Net 4.8 项目使用与 Net Core 相同的通用库。所以这些通用库都是针对netstandard2.0的。并且不能将它们更改为 Net5。现在所有这些 Standard2.0 项目仍然可以与我的 net5.0 Web 应用程序一起使用,没有任何问题。由于我之前的 3.1.9 版本没有任何问题,如果您不打算将应用程序迁移到 Net5.0,我不建议将库更新到 5.0。在此之后您可能会遇到更多问题,然后您可以从此更新中获得收益。

【讨论】:

  • "但是我无法编译我的主 Web 应用程序。它开始给出一些奇怪的错误,一些员工需要 .net5。"这需要进一步挖掘,并且可能是由其他原因引起的。
  • 在我更新之前它工作正常。你是对的,也许它可以修复,但我认为浪费时间没有多大意义,因为我计划在几天内搬到 net5。我只是立即搬家。而且由于我以前的版本 3.1.9 没有任何问题。因此,如果我对此没有任何收获,我认为将库迁移到 5.0 并花费大量时间来修复它的意义不大。
【解决方案3】:

您应该将此类(适用于 Mac 的 VS 和适用于 Windows 的 VS)作为产品缺陷报告给 Microsoft,因为许多新的 5.0 软件包仅针对 net5,不适用于 netcoreapp3.1

尝试使用outdated工具检查包更新,更可靠,

https://github.com/dotnet-outdated/dotnet-outdated

【讨论】:

    猜你喜欢
    • 2021-03-25
    • 1970-01-01
    • 2019-06-18
    • 2021-07-11
    • 1970-01-01
    • 2019-06-04
    • 2020-04-07
    • 2023-03-03
    • 1970-01-01
    相关资源
    最近更新 更多