我如何将NET7.0库构建为netstandard2.1

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

我用C#开发了.NET7.0库。我想在 .NET Framework 和 .NET Core 中使用我的库。为了构建为.Netstandard2.1,我尝试更改

<TargetFramework>net7.0</TargetFramework>

<TargetFramework>netstandard2.1</TargetFramework>

执行此操作后,总是出现 C# 7.3 语言错误。为了修复语言错误,我在修复此语言错误后将 C# 语言选项添加到 8.0,它总是出现错误并且永远不会停止。我该如何解决这个问题?我如何将这个库构建为 netstandard2.1
以及其他错误之一:

Error CS0656 Missing member 'System.Runtime.CompilerServices.CompilerFeatureRequiredAttribute..ctor' required for the compiler
我在新的解决方案中创建了新的 netstandard2.1 库,并且再次出现此错误。有什么办法可以修复这个错误吗?

c# .net .net-core .net-standard .net-7.0
1个回答
0
投票

要将其与 NetStandard 2.1 一起使用,您必须限制自己只能使用 NetStandard 2.1 功能。

由于 .Net 7 后来出现并且(通常)取代了 ns2.1,这意味着如果您首先针对 .Net 7 进行构建,然后尝试添加 ns2.1 兼容性,您可能会发现自己有一堆使用功能的代码ns2.1 中尚不可用

首先使用 NetStandard 2.1 构建库。然后就可以添加对.Net 7的支持了。您可能仍然需要处理框架的更改,导致您需要条件预处理器指令,但您不必处理刚刚缺失的语言功能。

说到预处理器指令,有些事情发生了变化。例如,在某个时刻(我不记得是在 NS2.1 之前还是之后),ADO.Net 库从

System.Data
移至
Microsoft.Data
。如果是在之后,您将需要一个
#if
指令来更改版本并为正确的位置添加
using
块。

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