C# 项目 属性 的文档:`<Features>strict</Features>`

Documentation for C# Project Property: `<Features>strict</Features>`

我想在打开 Microsoft 的所有可能警告的情况下开发 C#,我发现 说要将 <Features>strict</Features> 添加到我的 .csproj 文件.

但是,在我开始使用它之前,我想了解它启用的警告以及它可能产生的其他副作用。

不幸的是,我找不到任何关于它的文档。

我假设它在 Microsoft 文档的某个地方,但我找不到它。

更新: 我发现 an article 关于这个 属性 引用以下内容:

Note that this flag is not documented and not well-known.

Microsoft 是否从来没有记录过此功能?

感谢所有通过发布有用文章和文档的链接提供帮助的人。

现在,我决定创建一个名为 Directory.Build.props 的文件,内容如下:

<Project>
  <PropertyGroup>
    <Features>strict</Features>
    <WarningLevel>9999</WarningLevel>
  </PropertyGroup>
</Project>

NOTE: For .NET Core, WarningLevel maxes out at 4. For .NET 5 and newer, it maxes out at 9999.

然后我会将此文件复制并粘贴到我所有解决方案文件的根目录中。

我的目标是有一种简单的方法来为任何项目启用所有 C# 警告,这样我就可以自信地编写代码,确保我没有做任何我不应该做的事情。

虽然我从测试中获得了大部分信心,但每种语言都有自己的惯例和最佳实践,如果不遵守这些惯例和最佳实践,通常会产生警告,这是我启用这些功能的动机。

这种方法应该适用于 Visual Studio 代码和 Visual Studio,并且当我在我的环境中使用最新的 .NET SDK 时,它应该适用于所有现代 C# 环境和任何 IDE 还有。