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

问题描述

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

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

很遗憾,我找不到任何关于它的文档。

我认为它在 Microsoft 的文档中的某个地方,但我在任何地方都找不到。

更新:我发现an article关于这个属性,引用如下: >

请注意,此标志未记录且不为人所知。

微软从一开始就没有记录这个功能吗?

解决方法

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

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

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

注意:对于 .NET Core,WarningLevel4 处达到最大值。对于 .NET 5 和更新版本,它在 9999 处达到最大值。

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

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

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

这种方法应该适用于 Visual Studio Code 和 Visual Studio,虽然我在我的环境中使用最新的 .NET SDK,但它应该适用于所有现代 C# 环境和任何 IDE。