在我们的C#项目中,我们一般使用如下设置:
<TreatWarningsAsErrors>true</TreatWarningsAsErrors>
<WarningsNotAsErrors>612,618</WarningsNotAsErrors>
到目前为止,效果完美,达到了以下预期结果:
在 .NET 8 中,BCL 似乎引入了一整套新警告,表明某些类型或成员将被弃用,例如:
在我们的代码库(有多个数百个 C# 项目)中,我们经常出现这样的情况。我们会修复它们,但不能同时在所有地方修复。
在不脱离一般警告作为错误设置的情况下,将这些新的弃用警告视为警告而不是错误的有效方法是什么?
(作为一点背景信息,我对为什么决定对 .NET 8 框架弃用声明大量新警告而不是首先使用现有的 CS0612 和 CS0618 的任何见解感兴趣。也许了解这有助于决定如何处理这个问题。)
为什么 SYSLIB 警告与 CS0612/CS0618 分开引入?
CS0612 和 CS0618 警告与过时属性特别相关。这些属性直接与已弃用的 API 或类型相关联,通常由开发人员在标记自己的代码库以便将来删除时使用。
另一方面,SYSLIB 警告是 .NET 内部库警告(系统库)的一部分。这些警告:反映影响框架较大部分的全系统弃用。 帮助开发人员从过时的技术或实践中过渡,这些技术或实践将在未来的 .NET 版本中删除或替换。 SYSLIB 警告特定于基类库 (BCL),旨在传达更广泛的框架级别更改,例如序列化模式、加密策略或基于格式化程序的序列化。
通过使用 SYSLIB 代码,Microsoft 能够针对特定类别的弃用提供更多上下文和清晰度,这与更通用的 CS0612/CS0618 警告不同。
https://learn.microsoft.com/en-us/dotnet/fundamentals/syslib-diagnostics/obsoletions-overview
我相信这篇[帖子]应该对你有帮助,因为你只是做了与他正在做的相反的事情