如何在 Visual Studio 2017 中禁用作为调试错误的失败断言?

Posted

技术标签:

【中文标题】如何在 Visual Studio 2017 中禁用作为调试错误的失败断言?【英文标题】:How do I disable a failed assert being a debug error in Visual Studio 2017? 【发布时间】:2018-09-30 23:03:10 【问题描述】:

我不是 Visual Studio 爱好者(我更喜欢 Linux/自己的工具),但我必须使用它来跟上我的工作团队。缺乏可访问的 Microsoft 文档,我必须花费大量时间才能使每个标准的花里胡哨都能以自然的方式工作。

我什至找不到如何在每次断言调试中断时禁用烦人的铃声。

是否有一种简单的方法可以完全禁用它,而无需从 Visual Studio 功能中更改代码(重载断言)?

另外,为什么 Visual Studio 认为失败的断言如此重要,以至于需要以第一种方式弹出对话框并播放声音?断言编程是否与 VC++ 开发不兼容,如果是,为什么?

平台

VC++ 2017+ 标准,cassert 断言

Windows 10、Visual Studio 2017 和控制台 C++ 应用程序。

【问题讨论】:

什么版本的 Windows?请通过编辑您的问题来回答,而不是在 cmets 中。提前致谢。 什么语言(C++ 原生、C++ 托管、C#、VB.NET 或 F#)?可能会有所不同,具体取决于这是否是 .NET。请通过编辑您的问题来回答,而不是在 cmets 中。提前致谢。 见***.com/questions/2836947/… @Sergey Vlasov:不,这不会禁用调试断言对话框的声音。即使全部关闭,调试断言对话框打开时仍然有声音。 @Sergey Vlasov,感谢您的链接,但有问题的事件不是提供的列表(共 4 个) 【参考方案1】:

是的,有一个简单的方法。但它也会影响 Windows 的其他部分(通过禁用在 Visual Studio 之外使用的声音)。

禁用 Windows 声音 Critical Stop

方法

Windows 10:

窗口 +声音→选择“更改系统声音”→选择“紧急停止”(在“Windows”中 部分,第一部分)→ 在 “声音” 下拉列表中选择 “(None)” → 按 Apply

应用后立即生效。

验证

要验证 Windows 声音“Critical Stop” 会影响调试断言对话框的行为,请将声音设置为一些不同的声音,例如“Ring04.waw”。

平台

这是在 Windows 10 上使用 Visual Studio 2012、C# (.NET) 中的 Windows 窗体应用程序和代码行 Trace.Assert(false, "Break in..."); 进行测试的。

【讨论】:

这对于更改与 VS 相关的功能似乎有点过头了。看起来VS根本不喜欢断言。实际上,完全删除对话框的侵入性较小的解决方案是简单地将断言重载到标准。但是问题又是为什么 VS 不兼容断言编程。

以上是关于如何在 Visual Studio 2017 中禁用作为调试错误的失败断言?的主要内容,如果未能解决你的问题,请参考以下文章

如何使用Visual Studio 2013或Visual Studio 2017设置TFS 2013

如何设置 TFS 2013 以使用 Visual Studio 2013 或 Visual Studio 2017 构建

无法找到visual studio 2017生成工具

visual studio 2017 如何下载和安装

如何在 Visual Studio 2017 中创建 Visual c++ MFC 控制台项目

如何在 Visual Studio 2017 中启用 WiX 项目