我是 .NET 世界的新手,想知道这两个语句之间的区别是什么:
<TargetFrameworks>net6.0;netstandard2.0</TargetFrameworks>
<TargetFramework>netstandard2.0</TargetFramework>
我知道 netstandard2.0 涵盖了 net6.0,是什么让我们在 TargetFrameworks 中再次提到它??
这意味着在代码的某些地方,您可以使用条件编译来指定 .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 构建中。