用途:CSharpener 是基于 Roslyn 的 C# 静态分析工具,用于分析 C# 代码库、构建调用图、识别未使用代码,并辅助重构决策。
主要能力:提供 analyze(完整分析,含调用图、未使用方法与统计)、unused(查找未使用方法,按高/中/低置信度分级)、callers(查找某方法的调用者)、dependencies(查找某方法依赖的方法)、impact(分析删除某方法的影响,含直接调用者、传递调用者与受影响入口点)、document(生成带交叉引用代码、调用图和导航的 HTML 文档)。输出格式支持 console、json、html、dot/graphviz。
使用方式:调用格式为 "Y:/CSharpDLLs/CSharpener/CSharpener.exe" <command> --solution "<path-to-solution>" --format console。可执行文件路径用正斜杠,路径加双引号,--solution 用 Windows 反斜杠路径。若 Y: 盘不可用,可从 GitHub 源码构建:dotnet build -c Release,产物为 CSharpCallGraphAnalyzer\bin\Release\net9.0\win-x64\csharp-analyzer.exe。
适用场景:重构前清理未使用代码、理解代码调用流程、代码评审、生成项目文档,以及集成到 CI/CD 中输出 JSON 结果。
限制:仅支持 C# 项目;首次分析较慢,会生成 .csharpener-cache/ 缓存;大型解决方案建议排除测试项目或分项目分析;未使用方法检测可能因反射或依赖注入产生误报,低置信度结果需人工确认。
分类:coding。