c# - Visual Studio 中的 "Treat all warnings as errors except..."

标签 c# visual-studio msbuild

在 Visual Studio 中,我可以选择“将警告视为错误”选项,以防止在出现任何警告时编译我的代码。我们的团队使用此选项,但我们希望保留两个警告作为警告。

有一个选项可以抑制警告,但我们确实希望它们显示为警告,所以这行不通。

似乎获得我们想要的行为的唯一方法是将每个 C# 警告编号的列表输入到“特定警告”文本框中,除了我们希望视为警告的两个。

除了维护问题之外,这种方法最大的缺点是一些警告没有编号,因此无法明确引用。例如,“无法解析此引用。无法找到程序集‘Data....’”

有谁知道更好的方法吗?


为那些没有立即明白为什么有用的人澄清。想想大多数警告是如何工作的。他们告诉您您刚刚编写的代码中有些地方不对劲。修复它们大约需要 10 秒,这可以使代码库更干净。

“过时”警告与此有很大不同。有时修复它意味着只使用一个新的方法签名。但是,如果整个类都已过时,并且您在数十万行代码中分散使用它,则可能需要数周或更长时间才能修复。您不希望构建被破坏那么久,但您绝对希望看到有关它的警告。这不仅仅是一个假设的案例——这已经发生在我们身上。

文字“#warning”警告也是独一无二的。我经常检查它,但我不想破坏构建。

最佳答案

您可以在项目文件中添加一个WarningsNotAsErrors标签。

<PropertyGroup>
    ...
    ...
    <WarningsNotAsErrors>618,1030,1701,1702</WarningsNotAsErrors>
</PropertyGroup>

注意:612618 都是关于 Obsolete 的警告,不知道区别,但我正在处理的项目正在报告 Obsolete 和警告 618。

关于c# - Visual Studio 中的 "Treat all warnings as errors except...",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18204645/

相关文章:

c# - BindableBase.SetProperty不更新UI

c++ - 虚方法的返回值

visual-studio-2008 - 如何使用 msbuild/web 部署项目删除多个文件?

c# - 如何在 ASP.Net Web Forms Identity 中使用 "username"而不是 "email address"登录

c# - Entity Framework 规范模式实现

c# - Win XP(x86) OS 但不是 Win 7(x64) 上的二级属性绑定(bind)异常

c# - 启动 C# 应用程序后,非主线程执行什么操作?

visual-studio - 在visual studio中添加服务安装程序和服务进程安装程序

.net - 修复了在 Debug模式下测试 Azure 和 Web 服务角色时的端口号

deployment - 将 MsBuild 包分解并部署为单独的 MsBuild 和 MsDeploy 命令