OutputSmith
让 Visual Studio 的输出窗口更易读。错误和警告醒目突出,生成和测试结果一目了然,而模块加载、编译步骤、还原行等干扰信息则退居其后。
免费 · Visual Studio 2022 和 2026 · 14 种界面语言 · 无遥测
为什么选择 OutputSmith

问题优先
错误显示为红色,整行带浅红色背景,文本左侧有标记;警告显示为黄色。即使是很长的生成,不用读一行就能看到它们。
干扰信息退居其后
模块加载、已退出的线程、还原和编译步骤、测试适配器的消息都会被淡化——它们仍在,但不再碍事。
只认确定的内容
按 MSBuild、编译器、测试运行程序和日志记录器的格式识别各行。仅仅包含“error”一词的行保持原样。
免费,没有附加条件
没有订阅、没有试用期、没有催促弹窗、没有遥测。支持 Visual Studio 2022 和 2026,x64 和 ARM64。
功能
- 结果一目了然:“Build: 4 succeeded, 0 failed”和“Test run finished: … 0 Failed”显示为绿色,失败的显示为红色;项目的输出路径(
Project -> …\bin\…dll)也显示为绿色。 - 编译器、MSBuild、NuGet(包括漏洞警告
NU1901–NU1904)和 CMake 的错误和警告,并突出显示诊断代码。 - 文本左侧的标记:错误为红色,警告为黄色,“调试”窗格中应用程序自身的输出为蓝色。
- 链接:带行号和列号的文件路径、网址。
- 淡化干扰信息:模块加载、已退出的线程、NuGet 还原、C++ 编译和链接步骤、已复制文件列表、CMake 检查、测试主机和适配器消息。
- ILogger(ASP.NET Core)、Serilog、NLog、log4net 以及 Visual Studio 自身日志的日志级别:info 为蓝色,warn 为黄色,error 为红色,debug 和 trace 为灰色。延续到后续行的消息采用其条目的颜色。
- 异常:未经处理的异常为红色,“Exception thrown”(第一次机会异常)为黄色;带源文件的堆栈帧保持醒目,框架的帧被淡化。
- 时长和大小:
297 ms、14.2 seconds、1.5 MB、Time Elapsed: 00:00:00.82会突出显示。 - 深色和浅色主题:颜色跟随 Visual Studio 的主题。
窗格
| 窗格 | 识别的内容 |
|---|---|
| Build, Build Order | 带项目名称的生成标题、诊断、结果、还原、C++ 编译步骤、复制步骤 |
| Debug | 模块加载和线程、应用程序输出、日志级别、异常和堆栈帧 |
| Tests | xUnit、NUnit 和 MSTest 消息,失败和跳过的测试,运行结果 |
| CMake | 配置检查及其结果,带文件链接的 CMake 错误和警告 |
| Package Manager | 还原行和漏洞警告 |
| GitHub Copilot, … | Visual Studio 自身的日志([Category Information]),以及 : Succeeded 之类的结果 |
生成
在“Build started”行中,项目名称显示为粗体,其余部分为灰色,便于跟踪并行生成。错误带浅红色背景,警告带黄色标记;路径和代码会突出显示。

调试
调试器自身的消息为灰色,因此应用程序写入的内容(Debug.WriteLine、Trace、日志记录器)会带着蓝色标记突出显示。日志级别会着色;未经处理的异常为红色,你自己代码中的帧保持醒目。

测试和 CMake
测试适配器的输出很多:xUnit、NUnit 和 MSTest 的进度以及“No test is available in …”都显示为灰色。失败的测试、发现失败和运行结果则会突出显示。

CMake 和 C++
CMake 检查显示为灰色,只有结果词会着色——在 Windows 上“not found”往往是预期的,因此显示为黄色而不是红色。正在编译的文件名和“Generating Code…”也显示为灰色。

设置
工具 → 选项 → SmithWorks → OutputSmith。每个选项都有说明,顶部的预览会立即显示效果。
| 选项 | 默认值 |
|---|---|
| 为输出窗口着色 | 开 |
| 为错误行添加背景色 | 开 |
| 文本左侧的标记 | 开 |
| 在“调试”中标记应用程序输出 | 开 |
| 淡化调试器干扰信息 | 开 |
| 突出显示时长和大小 | 开 |
| 突出显示项目名称 | 开 |
| 第一次机会异常 | 警告 |
| 日志格式 | 全部开启 |
| 窗格 | 全部开启 |
设置保存在 %LocalAppData%\OutputSmith 中。

常见问题
为什么某些行没有着色?
OutputSmith 只为它认识的格式着色:MSBuild 和编译器诊断、测试运行程序、日志记录器、调试器和 CMake 消息。仅仅包含“error”或“failed”的行不会被猜测着色——否则会着色过多。另请检查设置中是否已开启该行所在的窗格。
OutputSmith 会更改输出吗?
不会。它只改变文本的外观;复制、搜索、双击导航和错误列表照常工作。
它会拖慢大型生成吗?
不会。只为可见的行着色,并且每一行只识别一次。
可以更改颜色吗?
暂时不能。颜色跟随 Visual Studio 的深色或浅色主题;每种突出显示都可以在设置中关闭。
OutputSmith 会发送任何数据吗?
不会。没有遥测,也不访问网络。
在哪里报告问题或提出功能建议?
请在 GitHub 上的 Feedback 仓库中提交 issue——那里有用于报告错误、提出建议和提交未被识别的行的表单(如有私密名称,请先替换)。也可以使用 Marketplace 上的 Q&A 选项卡。
更新日志
1.0.2
- 设置中新增“发送反馈”链接,可打开 GitHub 上的 Feedback 仓库。
- 设置已移至“工具 → 选项 → SmithWorks → OutputSmith”,与其他 SmithWorks 扩展放在一起。
1.0.1
- 设置中新增“在 Marketplace 上评价”链接。
1.0.0
- 首个公开版本。