SuperAPI AI 工具集

dotnet-version-detection

编程与开发

查看项目

更新于 10-16 07:23

技能介绍

用途:这是 .NET 开发的前置技能,先确定项目使用的目标框架(TFM)与 SDK 版本,后续其他技能据此调整指引。它也从项目文件推断 C# 语言版本,并报告版本相关的 API 可用性与支持生命周期。

主要能力:按优先级读取 <TargetFramework>、<TargetFrameworks> 多目标、Directory.Build.props 共享 TFM,再回退到 global.json 的 sdk.version,最后用 dotnet --version 推断。检测多目标时按最高 TFM 给出指引,并提示低版本 TFM 的 polyfill 需求。还检查 LangVersion、EnablePreviewFeatures、runtime-async 等预览特性开关,并识别 .fsproj、.vbproj 的相同逻辑。

使用方式:可先用内置扫描脚本快速盘点,命令为 python3 skills/dotnet-version-detection/scripts/scan-dotnet-targets.py --root . --json,脚本输出仅作发现输入,最终 TFM 仍按上述优先级判定。结果建议按项目缓存,切换项目或文件被修改时重新检测。TFM 为 MSBuild 属性表达式时无法静态解析,需回退并用 dotnet msbuild -getProperty:TargetFramework 等方式核实。

适用场景:多目标项目、SDK 与 TFM 不一致、预览特性与支持周期判断等。

限制:不负责项目结构分析、.NET 10 无 .csproj 的文件式应用、版本升级迁移与多目标 polyfill 细节,这些属于其他技能;未安装 SDK 时构建会失败;版本到功能映射数据以资料标注的更新时间为准。