GitHub Copilot升级核心概念
发布时间:2026-09-29 | 浏览:1
访问此页面需要授权。 可以尝试 登录 或 更改目录 。
访问此页面需要授权。 可以尝试 更改目录 。
GitHub Copilot 升级功能通过结构化工作流来升级受支持的项目。 了解代理如何使用技术包、方案、技能、任务和持久性状态来规划和验证更改。
描述所需的结果,而不是记住方案或技能名称。 代理会检测存储库中的技术,并选择相关功能。
代理擅长协作,而不是在真空中实现自动化:
技术特定的知识: 技术包为支持的语言、框架、包管理器和项目类型提供升级工作流、工具和指南。
结构化工作流: 每个升级都经过评估、规划和执行。 没有随机变化,没有惊喜。
了解首选项: 当你说“始终使用显式类型而不是 var ”时,代理会写入 scenario-instructions.md 该首选项并在会话之间记住它。
可更正的中途: 打错了电话? 告诉代理。 它会自动适应并在以后的操作中应用更正。
解释其推理: 问 “你为什么选择这种方法?” ,代理会引导你完成决策。
场景 是一个受管理的端到端升级工作流。 例如, “将我的解决方案升级到 .NET 10” 会触发.NET版本升级方案。 技术包还可以为专用集成提供工作流,例如 JavaScript 或 TypeScript 依赖项更新的 Dependabot 验证。
无需记住情境名称。 代理会自动发现相关方案:
分析代码库,了解所使用的技术,包括语言、框架版本、库和项目类型。
按重要性和权重对方案进行排名。 最相关的优先显示。
还可以直接询问: “我的解决方案有哪些方案可用?
每个活动方案都会分配一个自己的文件夹 .github/upgrades/{scenarioId}/ 。 方案文件夹包含计划、任务进度、首选项和执行日志。 该文件夹是 Git 存储库的一部分。
有关可用工作流,请参阅 .NET方案和技能 以及 JavaScript 和 TypeScript 功能 。
每个方案都遵循相同的生命周期:一个三阶段工作流。
代理在开始工作之前收集所需的一切:
Git 策略: 代理会建议分支,而你可以控制详细信息:分支名称、是否使用按任务分配的分支以及提交时间。
流模式: 自动(代理驱动器)或引导式(你批准每个阶段)。
特定于方案的参数: 根据方案,代理可能会提出更多问题。
代理在 .github/upgrades/{scenarioId}/ 初始化场景工作区。
NuGet 包与目标框架的兼容性
代理将综合评估报告保存到 assessment.md 。
根据评估,代理会评估解决方案,并确定哪些升级决策是相关的。 它提供合理的默认值,并允许你查看和替代任何选择。
升级策略: 从下到上、从上到下或一次性。
Project升级方法: 就地重写或并行编写Web应用程序;就地或多重目标库。
技术现代化: 实体框架升级、依赖项注入、日志记录和配置的选项。
包管理: 是否和何时采用中央包管理。
兼容性处理: 如何解决不支持的 API 和包。
代理将确认的决定保存到 upgrade-options.md 。
在 引导模式下 ,代理将在此处暂停以供审阅,然后再继续操作。
代理根据评估和确认的选项创建任务计划。 规划生成三个关键文件:
plan.md :具有策略和任务说明的升级计划。
scenario-instructions.md :您的偏好、决策和代理的记忆。
tasks.md — 代理将执行的任务的有序列表。
代理按顺序处理任务。 对于每个任务 tasks.md ,代理遵循一个周期:启动、执行、验证(生成和测试),然后完成。 可以控制代理提交更改的时间和方式:每个任务、每个任务组或最终。 代理正常工作时,它会使用实时状态指示器进行更新 tasks.md ,以便跟踪进度。
在评估阶段,代理会评估解决方案,并建议以下策略之一:
代理仅显示与你的项目相关的决策。 简单的控制台应用看不到 Web 框架选项,没有 Entity Framework 的项目看不到数据库升级选项。
技能 是细化的现代化能力。 当代理在升级过程中遇到 EF6 代码时,它会加载 EF6 到EF-Core 技能,其中包含详细的分步升级说明。 在升级过程中直接调用技能: “将项目中的 WCF 服务升级到 CoreWCF”。
技术包提供按域组织的内置技能。 示例包括:
数据访问: EF6 到 EF Core(代码优先和 EDMX)、LINQ to SQL 和 SqlClient 升级
Web/ASP.NET: Identity、Global.asax、OWIN、MVC 路由/筛选器/捆绑和 WCF 到 CoreWCF
序列 化: Newtonsoft.Json 到 System.Text.Json
Cloud: Azure Functions内置到隔离的工作者模型
库: ADAL 到 MSAL、SignalR、PowerShell SDK 等
JavaScript 和 TypeScript: npm 依赖项升级、TypeScript 编译器升级、框架迁移指南和运行时验证
技能将根据代理在代码库中检测到的内容自动加载。 无需管理技能加载。 只需描述所需的内容。
有关特定于技术的列表,请参阅 .NET方案和技能 以及 JavaScript 和 TypeScript 功能 。
任务 是方案中的原子工作单元。 每个任务表示一个特定的有限升级部分,例如“将 CommonLib 从 .NET 6 升级到 .NET 10”或“将 DataLayer 中的 EF6 用法升级到 EF Core”。
可用: 准备好启动,满足所有依赖项。
正在进行中: 代理正在积极处理任务。
完成: 应用的代码更改、构建通过、测试通过。
评估复杂性,并确定任务是否需要子任务。
将范围摘要写入 tasks/{taskId}/task.md 。
在 tasks/{taskId}/progress-details.md 中记录结果。
代理保持持久性状态,以便随时停止和恢复。 所有内容都位于您的存储库内 .github/upgrades/{scenarioId}/ 。
关闭聊天、关闭 IDE 或第二天返回。 代理会从中断的地方继续:
在下一次交互中,代理会自动检查工作区的当前状态。
代理会检测现有方案并显示当前进度,例如“已完成的 8 个任务中的 3 个”。
代理会检测到陈旧的任务(因以前中断的会话而停滞不前),并提供选项以恢复或重启这些任务。
代理从 scenario-instructions.md 中重新加载首选项。
由于状态位于 Git 中,因此可以在 VS Code、Visual Studio 和 Copilot CLI 中间升级之间切换。 文件夹 .github/upgrades/ 是两个 IDE 都理解的共享状态。
将 .github/upgrades/ 文件夹提交到分支。 将分支推送到远程存储库,让团队成员查看进度或继续在不同计算机上升级。
代理支持两种流模式,用于控制你拥有多少监督: 自动模式 和 引导模式 。
代理会完成所有阶段(评估、规划和执行),而无需暂停审批。 它呈现了关键发现和进度更新,同时不断前进。
最适合经验丰富的用户、直接升级和小型解决方案。
代理在每个阶段节点暂停,供您审核。
评估后: “这是我找到的。是否继续执行升级选项?
规划后: “任务计划如下。你希望我开始执行吗?
在复杂任务分解之前: “此任务很复杂。下面介绍了我会如何分解它。
最适合初次使用者、复杂的解决方案,以及想要学习这一过程的情况。
说 出“暂停” 或 “切换到引导” ,以切换到引导模式。
假设 “继续” 或 “继续”切换到自动 模式。
从引导式模式开始,以便第一次升级以了解工作流,然后在舒适后切换到“自动”。
什么是GitHub Copilot升级?
使用 GitHub Copilot Upgrade 升级 .NET 应用
排查 GitHub Copilot 升级问题
想要尝试使用 Ask Learn 阐明或指导你完成本主题?
Last updated on 2026-09-25