用途:分析现有 .NET 代码库,找出可现代化之处,包括过时目标框架(TFM)、已弃用或已被取代的 NuGet 包、被取代的 API 模式、缺失的现代构建配置、过时的 C# 语言写法,以及安全与合规问题。
主要能力:检查 .csproj 或 Directory.Build.props 中的 TargetFramework,按支持状态给出升级建议;扫描 Directory.Packages.props 或 .csproj 中已被取代的包(如 Microsoft.Extensions.Http.Polly、System.Data.SqlClient、WindowsAzure.Storage 等)并列出替代项;识别旧式 Startup.cs、同步 I/O、非泛型集合、旧日志写法等模式;检查是否缺少 Directory.Build.props、Directory.Packages.props、.editorconfig、global.json、NuGet 审计、锁文件、包源映射、分析器、SourceLink、可空引用类型等;列出 C# 8 至 C# 13 的旧写法与替代写法;用 dotnet list package --vulnerable、--deprecated、--outdated 做安全与依赖审计。
使用方式:先运行 dotnet-version-detection 确定当前 SDK、TFM 和语言版本,再运行 dotnet-project-analysis 了解解决方案结构与依赖。随后按清单逐项扫描,例如用 find 与 grep 查找所有 TFM,用 dotnet list package 系列命令审计包,用 grep 检查旧模式与缺失的构建文件。最后按安全、可支持性、性能、开发体验、代码风格的影响顺序排定优先级。
适用场景:接手遗留 .NET 项目、升级前评估、代码审查、技术债盘点。
限制:该技能只标记机会,不提供实际迁移路径、polyfill 策略、多目标定位指导或逐步升级步骤,这些需参考 dotnet-version-upgrade 与 dotnet-multi-targeting。对深度使用 Newtonsoft.Json 的项目,是否立即迁移需评估成本。具体命令输出与平台细节以实际环境为准。