用途:System.CommandLine 2.0 是用于构建 .NET CLI 应用的稳定 API,基于 .NET 8.0+ 与 System.CommandLine 2.0.0+(2025 年 11 月 GA)。
主要能力:支持 RootCommand、Command 层级与嵌套子命令;Option<T> 命名参数、Argument<T> 位置参数、别名、全局选项(Recursive)、约束取值(AcceptOnlyFromAmong);SetAction 绑定同步或异步处理程序,异步动作接收 ParseResult 与 CancellationToken;通过 ParseResult.GetValue 按符号或名称取值;CustomParser 自定义类型解析、DefaultValueFactory 默认值、Validators.Add 校验、Arity 参数数量约束;内置 AcceptExistingOnly、AcceptLegalFileNamesOnly;ParserConfiguration 与 InvocationConfiguration 配置解析与调用;内置 --version、--help、[suggest] 补全与 DiagramDirective 等指令;解析错误处理;测试时用 InvocationConfiguration 重定向 TextWriter 捕获输出。
用法:安装 <PackageReference Include="System.CommandLine" Version="2.0.*" />;入口调用 rootCommand.Parse(args) 后 parseResult.Invoke() 或 InvokeAsync()。
限制:2.0.0 GA 与 beta4 差异大,SetHandler 改为 SetAction,ICommandHandler、InvocationContext、CommandLineBuilder、AddMiddleware、IConsole 均已移除,Hosting 与 NamingConventionBinder 包停用,勿用 beta 模式。CLI 架构、AOT、分发、CI/CD、DI 机制等不在本技能范围。资料未提供收费与价格信息。