dotnet/skills升级插件六大技能清单:.NET版本升级路线图
【免费下载链接】skillsRepository for skills to assist AI coding agents with .NET and C#项目地址: https://gitcode.com/GitHub_Trending/skills17/skills
对于正在维护 .NET 项目的开发者来说,跨版本升级常常意味着成堆的破坏性变更和漫长的踩坑过程。dotnet/skills 升级插件(dotnet-upgrade)正是为此而生——它面向 AI 编程智能体提供了一套完整的 .NET 版本升级技能,覆盖 .NET 8→9→10→11 的逐级迁移、可空引用类型(NRT)改造、Thread.Abort 迁移和 Native AOT 兼容性修复,让升级路线图变得清晰可控。
升级插件是什么?
这个仓库是 .NET 团队为 AI 编程智能体精心整理的核心技能集,其中 plugins/dotnet-upgrade/ 插件专门负责跨框架版本迁移与升级:它会引导 AI 智能体评估项目、更新目标框架(TargetFramework)、逐个解决编译错误,并处理运行时行为变更。
插件元信息定义在 plugins/dotnet-upgrade/plugin.json 中,目前包含6 个技能,分为"版本迁移三件套"和"升级护航三件套"。
六大技能一览
| # | 技能 | 解决的升级难题 |
|---|---|---|
| 1 | migrate-dotnet8-to-dotnet9 | .NET 8 → 9 迁移,替换 BinaryFormatter 等破坏性变更 |
| 2 | migrate-dotnet9-to-dotnet10 | .NET 9 → 10 迁移,Docker 基础镜像、C# 14 变更 |
| 3 | migrate-dotnet10-to-dotnet11 | .NET 10 → 11 预览版迁移,最低硬件要求提升 |
| 4 | migrate-nullable-references | 启用可空引用类型并清零 CS86xx 警告 |
| 5 | thread-abort-migration | 将 .NET Framework 的 Thread.Abort 改造为协作式取消 |
| 6 | dotnet-aot-compat | 修复 IL 裁剪/AOT 分析器警告,项目兼容 Native AOT |
版本迁移三件套:逐级升级路线图
三条迁移技能构成一条清晰的路线图,每一站都必须逐级通过,不能跳级——技能文档明确写明:从 .NET 8 起步,先升到 9,再升到 10,最后才是 11。
.NET 8 → .NET 9:替换 BinaryFormatter
- 定义文件:plugins/dotnet-upgrade/skills/migrate-dotnet8-to-dotnet9/SKILL.md
- 核心难点:
BinaryFormatter在新版中运行时直接抛异常,必须整体替换;同时处理 SYSLIB0054-0057 弃用警告和 C# 13 编译器变更 - 内置 10 份参考资料(ASP.NET Core、EF Core、加密、容器互操作等),按需加载,见 references/
.NET 9 → .NET 10:Docker 镜像与 C# 14
- 定义文件:plugins/dotnet-upgrade/skills/migrate-dotnet9-to-dotnet10/SKILL.md
- 核心难点:Dockerfile 基础镜像从 Debian 换到 Ubuntu;社区包
System.Linq.Async迁移到内置的AsyncEnumerable;NuGet 开始审计传递依赖,无版本号引用直接报错 - C# 14 新增
field、extension关键字带来的编译器变更也在覆盖范围内
.NET 10 → .NET 11:迎接预览版
- 定义文件:plugins/dotnet-upgrade/skills/migrate-dotnet10-to-dotnet11/SKILL.md
- 核心难点:最低硬件要求提升至 x86-64-v2 和 Arm64 LSE;
BackgroundService未处理异常会停止宿主;C# 15 编译器破坏性变更 - 目前覆盖至 .NET 11 预览版 Preview 3 的破坏性变更,适合提前规划升级窗口的团队
💡 三个技能还共享统一的分阶段提交流程:更新 TFM → 解决编译错误 → 处理行为变更 → 更新 CI/CD 基础设施,每一步独立提交,方便回滚和评审。
升级护航三件套
可空引用类型迁移:一次清零 CS86xx 警告
migrate-nullable-references 技能在现有代码库中启用<Nullable>enable</Nullable>并系统性清除所有警告。亮点包括:
- 零运行时行为变更:只动标注,不改逻辑,绝不顺手修 bug
- 提供项目级/逐文件两种铺开策略,多项目方案按依赖顺序迁移
- 附带自动化扫描脚本 scripts/Get-NullableReadiness.ps1 评估项目准备度
Thread.Abort 迁移:告别强制杀线程
thread-abort-migration 技能处理从 .NET Framework 升级到 .NET 6+ 后的经典拦路虎:Thread.Abort在现代 .NET 中会抛PlatformNotSupportedException。它会先盘点全部用法(包括Response.End这类"隐形"调用点),再逐一替换为协作式取消模型。
Native AOT 兼容:修复 IL 裁剪警告
dotnet-aot-compat 是纯知识型技能,帮助项目通过IsAotCompatible分析:正确添加[DynamicallyAccessedMembers]标注、保留标注流,并坚决反对用 pragma 压制 IL2026/IL2070 等警告——因为压制只是把运行时崩溃提前埋雷。
三步安装,让 AI 智能体替你升级
安装方式非常简单,以 Copilot CLI / Claude Code 为例:
- 启动客户端后添加市场:
/plugin marketplace add dotnet/skills - 安装插件:
/plugin install dotnet-upgrade@dotnet-agent-skills - 重启后输入
/skills查看已加载的 6 个升级技能
VS Code 预览版和 Cursor 同样支持,完整步骤见 README.md。
总结
这个 .NET 版本升级路线图把"最头疼的活"拆成了 6 块可执行、可检查的拼图:三个迁移技能保证逐级走稳,三个护航技能补齐 NRT、线程模型和 AOT 兼容短板。每个技能文档都写明了"何时用"与"何时别用",对新手非常友好。如果你的项目还停留在 .NET 8,不妨让 AI 智能体带着 plugins/dotnet-upgrade/ 里的技能,从今天就开始第一站升级。
【免费下载链接】skillsRepository for skills to assist AI coding agents with .NET and C#项目地址: https://gitcode.com/GitHub_Trending/skills17/skills
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考