如何在Visual Studio调试器中维护可提交到git的异常忽略列表
解决方案
以下方案完全不影响你执行git clean的操作习惯,可实现异常忽略配置的持久化与Git管理:
配置丢失的核心原因:Visual Studio默认将用户自定义的异常设置存储在解决方案目录下
.vs文件夹内的.suo文件中,该文件默认被纳入Git忽略规则,执行git clean -fdx时会被一并删除。
方案1:导出异常配置文件纳入Git管理(最通用)
- 完成所有异常忽略配置后,按下
Ctrl+Alt+E打开「异常设置」窗口 - 点击窗口右上角的「将异常设置导出到文件」按钮,将配置保存为比如
ExceptionSettings.json,放在解决方案根目录 - 将该配置文件提交到Git,只要是已被Git跟踪的文件,
git clean -fdx不会删除 - 每次执行完git clean操作后,在异常设置窗口点击「从文件导入异常设置」,选择该文件即可恢复所有配置,全程仅需几秒
方案2:脚本自动化导入(减少手动操作)
你可以编写简单的PowerShell脚本存放在解决方案根目录,调用Visual Studio的DTE接口自动导入配置,示例脚本如下:
# 导入异常配置脚本 ImportExceptionSettings.ps1 $dte = [System.Runtime.InteropServices.Marshal]::GetActiveObject("VisualStudio.DTE") $dte.Debugger.Exceptions.Import("$(Split-Path $MyInvocation.MyCommand.Path)\ExceptionSettings.json")
每次git clean后执行一次脚本即可完成配置恢复,不需要手动操作窗口。
方案3:代码级配置(一劳永逸,适合自有项目)
如果这些框架内部捕获的异常属于你可控的代码范围,可以在抛出并内部捕获异常的方法/类上添加[DebuggerNonUserCode]特性:
[DebuggerNonUserCode] public void FrameworkInternalMethod() { try { // 业务逻辑 } catch { // 内部捕获处理,不会抛出到用户代码 } }
标记为非用户代码的逻辑中抛出并被捕获的异常,调试器默认不会触发中断,该特性跟随代码提交到Git,完全不受git clean操作影响,所有协作者都可以共享该配置。
内容的提问来源于stack exchange,提问作者JoelFan
相关产品推荐
相关产品推荐

