Visual Studio 17.4.4多项目调试输出相对路径双击异常
问题:Visual Studio 17.4.4 多项目解决方案调试输出路径跳转异常
升级至Visual Studio 17.4.4后,多项目解决方案中出现以下异常:
双击调试输出中以解决方案相对路径开头的行时,会打开一个无语法高亮、无导航功能的纯文本文件标签页——即便该文件已在编辑器中打开。
此前将[CallerFileName]或StackFrame.GetFileName()返回的绝对路径转为相对路径后,VS可正常识别跳转,但该逻辑仅在单项目(项目与解决方案同目录)场景下仍能正常工作。
复现步骤
- 创建控制台应用ConsoleApp2,取消勾选“将解决方案和项目放在同一目录”选项;
- 在Program.cs末尾添加代码:
System.Diagnostics.Debug.WriteLine( "ConsoleApp2\\Program.cs(4): Hello, Output Window!" );; - 编译解决方案,关闭后重新打开;
- 启动调试,双击输出窗口中对应行。
预期与实际行为
- 预期行为:切换至已打开的文件标签,定位到对应行,保留所有编辑器功能;
- 实际行为:打开新的无功能纯文本标签,无法正常使用编辑器功能,点击“打开包含文件夹”会报错。
环境:C#、ReSharper,测试覆盖.NET Framework 4.6.2和.NET 7.0。
可行解决方案
改用绝对路径输出
暂时放弃相对路径,直接输出StackFrame.GetFileName()返回的绝对路径,调试输出双击后可正常跳转至已打开的编辑器标签,保留所有功能。修复VS/插件适配问题
该问题为VS 17.4.4已知bug,可尝试以下操作:- 重置VS设置:打开
工具→导入和导出设置向导→重置所有设置,选择默认设置后重启VS; - 临时禁用ReSharper:在
工具→ReSharper→暂停,重启调试后验证是否恢复,若正常则等待ReSharper适配VS版本的更新; - 回退至VS 17.4.3:通过Visual Studio Installer卸载当前版本,安装17.4.3版本,该版本未出现此路径跳转异常。
- 重置VS设置:打开
调整输出路径格式
输出相对路径时,使用项目根目录相对路径而非解决方案相对路径,例如将输出内容改为Program.cs(4): Hello, Output Window!(需确保调试输出上下文能识别当前项目路径),VS可正确解析并跳转。
内容的提问来源于stack exchange,提问作者Mike Nakis
相关产品推荐
相关产品推荐

