是否可以禁用特定的编译器警告?

时间:2014-03-20 14:46:12

标签: visual-studio visual-studio-2013 compiler-warnings suppress-warnings

我试图压制特定的编译器警告,即System.Data.OracleClient.OracleConnection' is obsolete。我在这里提出了这些问题:

How to disable specific warnings for the entire solution?

Globally suppress c# compiler warnings

......但它们似乎不适用于VS2013。当我转到项目的属性时,我看不到Build选项卡。我看到了Compile标签,但似乎没有地方可以指定要抑制的警告消息。我看到一个名为Warning configurations的部分,但我没有看到我正在寻找的警告。

更新:事实证明我正在尝试为VB.NET执行此操作。由于所选答案提供的链接,您必须编辑项目文件的XML并在<NoWarn></NoWarn>标记中提供警告代码。但是,您必须知道错误列表中隐藏的警告代码。获得它的一种方法是打开输出窗口并构建项目。在我的例子中,warnign代码是40000。它显示为BC40000,但我必须删除BC。重建项目后,警告消息消失了。

2 个答案:

答案 0 :(得分:3)

禁止显示Visual C#或F#的特定警告:

  1. 解决方案资源管理器中,选择要在其中禁止显示警告的项目。
  2. 在菜单栏上,选择查看信息页
  3. 选择构建页面。
  4. 抑制警告框中,指定要抑制的警告的错误代码,以分号分隔,然后重建解决方案。
  5. 有关如何禁止Visual C ++和Visual Basic的特定警告的详细信息,请查看here


    使用#pragma warning的另一种方法是启用或禁用某些警告。:

    #pragma warning disable warning-list
    #pragma warning restore warning-list
    
      

    警告列表

         

    以逗号分隔的警告编号列表。单独输入数字,不输入&#34; CS&#34;字首。   如果未指定警告编号,则禁用禁用所有警告并恢复将启用所有警告。

答案 1 :(得分:2)

是的,这是可能的。

#pragma warning disable 'warning-number-list'

其中warning-number-list是要禁用的警告编号的逗号分隔列表,例如1004

这将禁止从声明点到当前文件末尾的警告,除非重新启用:

#pragma warning restore 'warning-number-list'.

这些编译指示内联放置在您希望禁用/恢复警告的站点的代码中。

我相信项目属性标签上还有一个位置可以指定要禁用的警告,如上所述。