用途:Spectre.Console 用于在 .NET 控制台应用中生成富文本输出,Spectre.Console.Cli 用于结构化命令行解析。基线为 .NET 8.0+,Spectre.Console 0.54.0、Spectre.Console.Cli 0.53.1,均面向 net8.0+ 与 netstandard2.0。
主要能力:标记语法(粗体、颜色、嵌套、转义)、Figlet 文本、Rule 分隔线、表格(含嵌套表格、列配置)、树、面板、Columns 组合;进度条与状态旋转器;文本、确认、单选、多选提示;Live 实时显示与目标替换;Cli 支持命令层级、类型化设置、参数与选项、默认值、验证、异步命令、自动帮助,并可通过 ITypeRegistrar 接入 Microsoft DI。
使用方式:通过 PackageReference 引入 Spectre.Console;仅需富输出时无需安装 Cli。用 AnsiConsole.MarkupLine 等静态方法输出,或用 IAnsiConsole 实例以便测试。Cli 用 CommandApp 与 Command<TSettings> 定义命令,app.Run(args) 返回退出码。
适用场景:CLI 工具、构建脚本、部署与数据抓取等需要表格、进度、交互提示或实时状态的控制台程序。
限制:重定向输出时不应使用 Markup,ANSI 转义会破坏输出;CI 环境可能不支持 ANSI,可设 TERM=dumb 或用 ColorSystemSupport.NoColors;不要混用静态 AnsiConsole 与注入的 IAnsiConsole;Live 非线程安全,只能在回调内修改并 Refresh;非交互环境不要使用提示,改用环境变量或参数。完整 TUI、System.CommandLine、CLI 架构与分发由其他技能负责。