为什么要用 netstandard2.0 明确定位 net6.0

问题描述 投票:0回答:1

我是 .NET 世界的新手,想知道这两个语句之间的区别是什么:

  1. <TargetFrameworks>net6.0;netstandard2.0</TargetFrameworks>
  2. <TargetFramework>netstandard2.0</TargetFramework>

我知道 netstandard2.0 涵盖了 net6.0,是什么让我们在 TargetFrameworks 中再次提到它??

c# .net-6.0 csproj .net-standard-2.0
1个回答
3
投票

这意味着在代码的某些地方,您可以使用条件编译来指定 .NET-6 特定的类型/方法等。

例如,我们在我的 Noda Time 项目中就是这样做的。

工程文件针对netstandard2.0和net6.0:

<Project Sdk="Microsoft.NET.Sdk">
  <PropertyGroup>
    <TargetFrameworks>netstandard2.0;net6.0</TargetFrameworks>
  </PropertyGroup>

然后我们有一个

DateOnlyExtensions
,它仅存在于 .NET 6 构建中,用于
DateOnly
(仅在 .NET 6.0 中引入):

#if NET6_0_OR_GREATER

// Code using DateOnly

#endif

同样在

LocalDate
中,我们有
ToDateOnly
FromDateOnly
方法,它们仅包含在 .NET 6 构建中。

© www.soinside.com 2019 - 2024. All rights reserved.