C# 如何使用Roslyn编译器禁用中的RECS*警告

C# 如何使用Roslyn编译器禁用中的RECS*警告,c#,visual-studio-2015,warnings,compiler-warnings,roslyn,C#,Visual Studio 2015,Warnings,Compiler Warnings,Roslyn,在一些项目中更新到C#6和VS2015后,我开始看到很多构建警告,如下所示: RECS0119“string.Compare”具有区域性意识 RECS0017值类型与“null”的可能比较 RECS0063“StartsWith”具有区域性,缺少StringComparison参数 RECS0060“IndexOf”具有区域性意识,并且缺少StringComparison参数 可使用RECS0027运算符“is” RECS0133参数名称在基声明中不同 以下是建议之一的屏幕截图: 这些都是代码

在一些项目中更新到C#6和VS2015后,我开始看到很多构建警告,如下所示:

RECS0119“string.Compare”具有区域性意识
RECS0017值类型与“null”的可能比较
RECS0063“StartsWith”具有区域性,缺少StringComparison参数
RECS0060“IndexOf”具有区域性意识,并且缺少StringComparison参数
可使用RECS0027运算符“is”
RECS0133参数名称在基声明中不同

以下是建议之一的屏幕截图:

这些都是代码改进的有效建议,但是这些都来自一个由nuget包安装的类(PetaPoco,我在看你!),我不想以任何方式修改该文件。我不想看到这些警告


我曾尝试使用
#pragma warning disable RECS0060
和变体,但无法使警告消失。有没有办法在每个文件的基础上禁用这些Roslyn代码改进警告?不要为所有类隐藏它们,因为它们有时很有用。

在VS 2017中,您可以右键单击错误窗口中的错误号,并找到一个类似“抑制”的条目(抱歉,使用德语)。在那里,您可以通过名为“GlobalSuppressions.cs”的文件选择在代码或项目范围内使用pragma抑制消息。两者都可以正常工作。

顺便说一句,这些警告似乎来自Roslyn,而不是Roslyn本身。您可以创建一个单独的项目,在那里安装NuGet软件包,然后在该项目中禁用重新诊断。这有点混乱,但我认为您不能禁用启用警告——要么全是,要么什么都不是。@svick这确实是重构要点。我甚至没有意识到我已经安装了。想写一个答案来得分吗?