【问题标题】:.NET Standard and .NET Core 3.x or ASP.NET Core 3.x.NET Standard 和 .NET Core 3.x 或 ASP.NET Core 3.x
【发布时间】:2020-03-20 23:56:39
【问题描述】:

我对 .NET Standard 以及最近发布的 .NET Core 3.0 和 ASP.NET Core 3.1 有几个问题

.NET Standard 之前的版本与正在发布的 .NET Core 的主版本相同,但对于 .NET Core 3.1 兼容的是 .NET Standard 2.1。

  1. .NET Standard 是否会逐渐过时,或者这只是一个与 .NET Core 版本无关的版本号?
  2. 我们能否假设 .NET Standard 2.1 也将与 ASP.NET Core 3.1 兼容?
  3. 如果我们将现有的 Web 应用程序和 MVC Web API 迁移到 asp.net core 3.1,那么 Web 应用程序使用的现有 .net 标准类库会发生什么情况?

我们是否将旧的 .NET Standard 类库的目标框架更改为:

<TargetFramework>netstandard2.0</TargetFramework>

<TargetFramework>netstandard2.1</TargetFramework>

或者改成

<TargetFramework>netcoreapp3.0</TargetFramework> 

并将 FrameworkReference 添加到 Microsoft.AspNetCore.App

【问题讨论】:

    标签: c# asp.net-core asp.net-core-mvc asp.net-core-3.0 .net-standard-2.1


    【解决方案1】:
    1. .NET Standard 的版本号与 .NET Core 不一致,之前的任何对决纯属巧合。 .NET Standard 以较慢的节奏发布,但与 .NET Core 相比,它包含更多 API,因此在这个意义上它不会过时。

    除此之外 - 当 .NET 5 出现并统一平台时,.NET Standard 的相关性将降低,而且现在多目标运行良好,它在下一年仍将保持相关性并与处理相关旧框架的 API 表面。

    1. ASP.NET Core 3.0 与 .NET Standard 2.1 兼容,因此 ASP.NET Core 3.1 也将兼容。 (您使用的阶段表明您的关系是倒退的)

    2. 您可以继续从支持或更高版本的框架中引用 .NET Standard 2.0 库,因此当它可用时,您仍然可以在 ASP.NET Core 3.1 中使用它。

    对于你的最后一个问题,这取决于:)

    如果您正在处理非网络库,那么netstandard2.1 将是合适的(虽然不是强制性的,您可以将其保留为 2.0)。

    如果您有 ASP.NET Core 项目,或相关的 Web 库项目,那么您可能希望移至 netcoreapp3.0

    为了澄清我的最后一点,你找不到比 Andrew Lock 更好的解释了:https://andrewlock.net/converting-a-netstandard-2-library-to-netcore-3/

    官方升级指导can be found here

    【讨论】:

    • 值得注意的是,您对 .NET Standard 2.0 与 .NET Core 3.0 的选择归结为您是否需要在 .NET Core 3.0 中引入的 API:例如 Span&lt;T&gt; 等。如果您不需要利用这些,最好以 .NET Standard 2.0 为目标以获得更广泛的兼容性。以 .NET Standard 2.1 为目标确实没有任何意义,因为只有 .NET Core 3+ 支持它,而且可能永远不会支持。
    • 同意你的第一部分。它是“唯一”放弃对 .NET Framework 的支持,例如,mono 和 Xamarin 仍然适用于 2.1。
    • @Stuart - 哇,我不知道(放弃了 .NET Framework 支持)。所以我看了dotnet.microsoft.com/platform/dotnet-standard,我看到你在说什么:选择“.NET标准2.0”时,它显示“.NET Framework 4.6.1”和更高的支持。将下拉列表更改为“.NET Standard 2.1”,并且没有支持它的 .NET Frameworks!
    猜你喜欢
    • 1970-01-01
    • 2020-07-07
    • 2020-08-28
    • 1970-01-01
    • 2020-12-28
    • 2020-05-21
    • 1970-01-01
    • 2020-02-01
    • 1970-01-01
    相关资源
    最近更新 更多