Visual Studio 警告级别的含义?

Posted

技术标签:

【中文标题】Visual Studio 警告级别的含义?【英文标题】:Visual Studio warning level meanings? 【发布时间】:2009-03-13 18:27:57 【问题描述】:

在 Web 应用程序项目的构建选项卡上,我有一个名为“警告级别”的设置。我可以设置一个从 0 到 4 的值。这些值是什么意思?值 0 会更严格并产生更多警告,反之亦然?我还没有找到任何关于它的文档,但也许我找错地方了。

【问题讨论】:

【参考方案1】:

This link 向您显示警告级别的定义(我假设您在 Web 项目中使用 C# 代码)。 5 级是最严格的。


0:关闭所有警告消息的发射。 1:显示严重警告消息。 2:显示 1 级警告以及某些不太严重的警告,例如关于隐藏类成员的警告。 3:显示 2 级警告以及某些不太严重的警告,例如有关始终评估为 truefalse 的表达式的警告。 4:显示所有 3 级警告和信息性警告。这是命令行的默认警告级别。 5:显示 4 级警告以及来自 C# 9.0 附带的编译器的其他警告。

任何大于 5 的都被视为 5。

【讨论】:

谢谢,这正是我想要的。 我建议您复制答案中的级别,以防链接被破坏。在 Microsoft 网站上很少发生的事情。 :D @Samuel,链接没有损坏,建议很好。【参考方案2】:

越高越严格。看到所有对您的应用程序可能意义重大或意义不大的警告可能会很烦人,但花时间清除它们可以教给您很多东西。

【讨论】:

我支持这个。这可能是一个不错的选择,例如对于单元测试项目,包括你的规则集可能是多余的,甚至不适合那里的代码类型。【参考方案3】:

您可以查看Microsoft's levels here。 0 级基本上没有,而 4 级将是最严格的。

【讨论】:

【参考方案4】:

0 完全关闭警告,而 4 是最详细的级别。请参阅此处的documentation,它具有相同的警告级别。

【讨论】:

【参考方案5】:

此外,F# 达到警告级别 5:

--warn:警告级别

设置警告级别(0 到 5)。默认级别为 3。每个警告都根据其严重性赋予一个级别。与 1 级相比,第 5 级给出更多但不那么严重的警告。

5 级警告是:21(在运行时检查递归使用)、22(让 rec 评估乱序)、45(完全抽象)和 52(防御性副本)

https://docs.microsoft.com/en-us/dotnet/fsharp/language-reference/compiler-options

【讨论】:

【参考方案6】:

例如将警告级别设置为 4 或 /W4 意味着编译器会将所有警告视为错误。这主要是编译器在看到它感觉不好的东西时的反应。而且,顺便说一句,所有警告的级别为 0。

【讨论】:

级别 0 会关闭警告,但级别 4 不会将警告视为错误 - 它“显示所有级别 3 警告和信息性警告。” 还有一个额外的标志用于“将警告视为错误”/WX

以上是关于Visual Studio 警告级别的含义?的主要内容,如果未能解决你的问题,请参考以下文章

当 Visual Studio 2017 与 std 标头不兼容时,如何使用最高警告级别(墙)?

Visual Studio警告IDE0006的解决办法

Visual Studio 中的“将所有警告视为错误,除了...”

仅在 Visual Studio 中报告 C 警告

Visual Studio中的警告C6385

Visual Studio 中的 C4275 警告