【问题标题】:Globally suppress c# compiler warnings全局禁止 c# 编译器警告
【发布时间】:2010-10-06 07:14:27
【问题描述】:

在我的应用程序中,我有相当多的实体具有通过反射设置其值的字段。 (在这种情况下,NHibernate 正在设置它们)。我想摆脱“x 从未分配给并且将始终具有其默认值 0”警告,因此我可以更轻松地挑选出其他警告。我意识到您可以将它们包含在编译指示指令中,但是 AFAIK 您必须为每个指令执行此操作。是否有一个项目范围或解决方案范围的方法可以做到这一点?

【问题讨论】:

  • 有什么理由不把#pragma warning disable 169 放在源代码文件的顶部?它会抑制文件的其余部分。
  • ++ 到那个,更好,因为它清楚地表明该文件包含这些负载,而不是绝对所有内容
  • 在我的例子中,我使用 NHibernate 来设置实体的 ID。所以在每个域对象上我都有私有 int _ID;我真的不想在每个实体上设置 put pragma 指令,而是更喜欢全局的东西。
  • ^^^ 不仅您应该将 pragma 指令放在每个实体中,您实际上应该启用它并在每个单独的违规分配中禁用它在每个实体中。别再混淆“少打字”和方便了。减少打字所获得的任何便利都会在以后付出更多的不便和哭泣和咬牙切齿。

标签: c# compiler-warnings suppress


【解决方案1】:

使用 C# 命令行选项 /nowarn http://msdn.microsoft.com/en-us/library/7f28x9z3(VS.80).aspx

要在 Visual Studio 中执行此操作,请转到 Project properties->Build->(Errors and warnings) Suppress Warnings,然后指定一个逗号分隔的需要抑制的警告列表。

【讨论】:

  • 正如 AnthonyWJones 在下面指出的那样,在查看构建流时,您需要放入此逗号单独列表中的编译器警告 ID 可在输出窗口中找到。此线程中尚未提及的是它们以CSxxxx 的形式出现,您必须删除列出的代码中的“CS”前缀才能使其正常工作。
  • 这在 VS2017 中很难找到。在菜单栏中选择 Project->(project name) Properties... 选择 Build 选项卡。在错误和警告下查找禁止警告:在该框中添加警告编号。
【解决方案2】:

打开项目属性,在构建选项卡上,在 Suppress warnings: 框中输入要隐藏的警告 ID。

【讨论】:

  • 这就是我想要做的,但遗憾的是警告 ID 没有在 VS2010 的错误列表窗格中写入警告。并且一些警告 ID 非常接近但代码不同,我的意思是 int 和 CLS 错误的 CLS 错误对于一个类名是不同的。如果你的编码标准不是 CLS,你会怎么做?
  • @DavutGürbüz:在构建时尝试查看输出窗口
  • 我打开了详细的构建,所以很难看到,但它可以工作,BC40028 禁用了我的大部分 CLS 警告,谢谢
  • 是否有程序化的方式来抑制错误/警告?
【解决方案3】:

VC++ XML 标记是 用分号分隔的数字 ID 列表。 这似乎没有记录在我能看到的任何地方,但仅供参考。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-01-24
    • 1970-01-01
    • 1970-01-01
    • 2018-08-31
    相关资源
    最近更新 更多