关于 dotnet-upgrade
用于规划 .NET 项目升级的技能,涵盖框架和依赖评估、验证及发布文档,并通过提示词和清单协调项目与流水线升级。
主要功能
- 01项目框架与依赖评估
- 02升级顺序与渐进式规划
- 03目标框架选择与代码现代化
- 04NuGet 兼容性及冲突审查
- 05CI/CD 与测试验证规划
- 06破坏性变更与发布文档
适用场景
- 01规划多项目解决方案的升级
- 02检查包与框架兼容性
- 03准备 CI 验证和部署检查
- 04跟踪迁移工作与升级结果
安装
复制下面的命令,在终端中运行。
npx skills add https:/ / github.com/ github/ awesome-copilot --skill dotnet-upgrade安装后在 Claude Code 中输入/dotnet-upgrade确认已加载。
详细介绍
项目发现与评估
-
name: "项目分类分析" prompt: "识别解决方案中的所有项目,并按类型(
.NET Framework、.NET Core、.NET Standard)对其进行分类。分析每个.csproj当前的TargetFramework和 SDK 使用情况。" -
name: "依赖项兼容性审查" prompt: "审查外部和内部依赖项的框架兼容性。根据依赖关系图的深度确定升级复杂度。"
-
name: "旧版包检测" prompt: "识别需要迁移到
PackageReference格式的旧版packages.config项目。"
升级策略与排序
-
name: "项目升级顺序" prompt: "推荐从依赖最少到依赖最多的组件升级顺序。建议如何在 API 或 Azure Function 迁移之前隔离类库升级。"
-
name: "增量策略规划" prompt: "提出带有回滚检查点的增量升级策略。根据项目结构评估使用 Upgrade Assistant 或手动升级。"
-
name: "进度跟踪设置" prompt: "生成升级检查清单,用于跟踪所有项目的构建、测试和部署就绪情况。"
框架目标与代码调整
-
name: "目标框架选择" prompt: "为每个项目建议正确的
TargetFramework(例如net8.0)。审查并更新已弃用的 SDK 或构建配置。" -
name: "代码现代化分析" prompt: "识别需要现代化的代码模式(例如
WebHostBuilder→HostBuilder)。建议替换已弃用的 .NET API 和第三方库。" -
name: "异步模式转换" prompt: "建议在适当的情况下将同步调用转换为异步,以提高性能和可扩展性。"
NuGet 与依赖项管理
-
name: "包兼容性分析" prompt: "分析过时或不兼容的 NuGet 包,并建议兼容版本。识别不支持 .NET 8 的第三方库,并提供迁移路径。"
-
name: "共享依赖项策略" prompt: "推荐跨项目处理共享依赖项升级的策略。评估旧版包的使用情况,并在 Microsoft 支持的命名空间中建议替代方案。"
-
name: "传递依赖项审查" prompt: "审查升级后的传递依赖项和潜在版本冲突。建议依赖冲突的解决策略。"
CI/CD 与构建管道更新
-
name: "管道配置分析" prompt: "分析 YAML 构建定义中的 SDK 版本固定情况,并建议更新。建议修改
UseDotNet@2和NuGetToolInstaller任务。" -
name: "构建管道现代化" prompt: "生成用于 .NET 8 迁移的更新构建管道片段。建议在合并到 main 之前,在功能分支上进行验证构建。"
-
name: "CI 自动化增强" prompt: "识别在 CI 管道中自动化测试和构建验证的机会。建议持续集成验证策略。"
测试与验证
-
name: "构建验证策略" prompt: "提出验证检查,以确保升级后的解决方案能够成功构建和运行。建议升级后对单元测试和集成测试套件执行自动化测试。"
-
name: "服务集成验证" prompt: "生成验证步骤,以验证日志记录、遥测和服务连接。建议验证向后兼容性和运行时行为的策略。"
-
name: "部署就绪检查" prompt: "建议在生产发布之前进行 UAT 部署验证步骤。为升级后的组件创建全面的测试场景。"
破坏性变更分析
-
name: "API 弃用检测" prompt: "识别目标版本之间已弃用的 API 或已移除的命名空间。建议使用
.NET Upgrade Assistant和 API Analyzer 进行自动扫描。" -
name: "API 替换策略" prompt: "为已知的破坏性区域推荐替换 API 或库。审查
Startup.cs→Program.cs重构等配置变更。" -
name: "回归测试重点" prompt: "建议针对已升级 API 端点或服务的回归测试场景。为关键功能验证创建测试计划。"
版本控制与提交策略
-
name: "分支策略规划" prompt: "推荐具备回滚能力的安全升级分支策略。为部分和完整的项目升级生成提交模板。"
-
name: "PR 结构优化" prompt: "建议创建结构化 PR(
Upgrade to .NET [Version])的最佳实践。识别涉及破坏性变更的 PR 的标记策略。" -
name: "代码审查指南" prompt: "推荐同行审查的重点领域(构建、测试和依赖验证)。为有效的升级审查创建检查清单。"
文档与沟通
-
name: "升级文档策略" prompt: "建议如何在 PR 中记录每个项目的框架变更。提议自动生成发布说明,汇总升级内容和测试结果。"
-
name: "利益相关者沟通" prompt: "建议向使用者传达版本升级和迁移时间线。生成依赖更新和验证结果的文档模板。"
-
name: "进度跟踪系统" prompt: "建议维护升级摘要仪表板或 Markdown 检查清单。创建用于跟踪多个项目升级进度的模板。"
工具与自动化
-
name: "升级工具选择" prompt: "推荐何时以及如何使用:
.NET Upgrade Assistant、dotnet list package --outdated、dotnet migrate和graph.json依赖可视化。" -
name: "分析脚本生成" prompt: "生成用于在升级前分析依赖图的脚本或提示词。为 Copilot 提议 AI 辅助提示词,以自动识别升级问题。"
-
name: "多仓库验证" prompt: "建议如何跨多个仓库验证自动化输出。为企业级升级创建标准化的验证工作流。"
最终验证与交付
-
name: "最终解决方案验证" prompt: "生成验证步骤,以确认最终升级后的解决方案通过所有验证检查。建议升级后的生产部署验证步骤。"
-
name: "部署就绪确认" prompt: "建议生成最终测试结果和构建产物。创建汇总各项目完成情况(构建/测试/部署)的检查清单。"
-
name: "发布文档" prompt: "生成汇总框架变更和 CI/CD 更新的发布说明。创建全面的升级摘要文档。"