GitHub Copilot升级是一个GitHub Copilot代理,可帮助你快速自信地将项目升级到较新版本的.NET。 它指导你完成跨Visual Studio、Visual Studio Code、GitHub Copilot CLI 和 GitHub.com 的评估、解决方案建议、代码修复和验证。
使用此代理可以:
- 升级到较新版本的 .NET。
- 使 .NET 应用现代化,尤其是在从 .NET Framework 升级时。
- 评估应用程序的代码、配置和依赖项。
- 验证您的应用程序是否已成功构建并通过测试。
应用场景
代理提供了多个称为 方案 的端到端现代化工作流。 每个方案都是一个托管工作流,指导你完成特定类型的升级或迁移:
| 情景 | 说明 | 示例提示 |
|---|---|---|
| .NET 版本升级 | 从较旧的.NET版本升级到 .NET 8、9、10 或更高版本。 | “将解决方案升级到 .NET 10” |
| SDK 样式转换 | 将旧项目格式转换为 SDK 样式。 | “转换为 SDK 样式” |
| Newtonsoft.Json 升级 | 将 Newtonsoft.Json 替换为 System.Text.Json。 | “从 Newtonsoft.Json 升级” |
| SqlClient 升级 | 从 System.Data.SqlClient 升级到 Microsoft。Data.SqlClient。 | “更新 SqlClient” |
| Azure Functions升级 | 将Azure Functions从进程内升级到隔离工作者模型。 | “升级我的Azure Functions” |
| 从语义内核到代理 | 将语义内核代理升级为Microsoft Agent Framework。 | “升级我的 SK 代理” |
| Aspire 集成 | 添加Aspire对内部循环和Azure部署的支持。 | “将 Aspire 添加到我的应用” |
| Aspire 版本升级 | 将现有 Aspire 应用程序升级到较新版本。 | “升级我的 Aspire 版本” |
| WebForms-to-Blazor 升级 | 将 ASP.NET Web Forms应用程序升级到 Blazor。 | “将我的 Web Forms 应用迁移到 Blazor” |
有关所有方案和 30 多种内置升级技能的完整参考,请参阅 方案和技能参考。
提供反馈
Microsoft 重视您的反馈,并利用它来改进其智能助手。 使用以下任一选项留下反馈:
在升级代理GitHub存储库中提出问题。
先决条件
在使用代理之前,请在开发环境中设置GitHub Copilot升级。 有关安装步骤,请参阅安装GitHub Copilot升级。
升级 .NET 项目
升级代理支持升级以下类型的 C# 和Visual Basic项目:
- ASP.NET Core(MVC、Razor Pages 和 Web API 等相关技术)
- ASP.NET Web Forms
- Blazor
- Azure Functions
- Windows Presentation Foundation(WPF)
- Windows 窗体
- WinUI
- .NET MAUI和Xamarin
- 类库
- 控制台应用
- 测试项目(MSTest、NUnit 和 xUnit)
若要开始升级,请参阅升级具有GitHub Copilot升级.NET应用。
支持的升级途径
代理支持以下升级路径:
| Source | 目标 |
|---|---|
| .NET框架(任何版本) | .NET 8 或更高版本 |
| .NET框架(任何版本) | .NET 框架 4.8.1 |
| .NET Core 1.x–3.x | .NET 8 或更高版本 |
| .NET 5 或更高版本 | .NET 8 或更高版本 |
将 .NET 项目迁移到 Azure
若要将.NET应用程序迁移到Azure,请使用GitHub Copilot现代化代理。 现代化代理处理特定于Azure的方案,例如数据库迁移、存储、标识、消息传送和部署。
使用仪表板监视升级
升级仪表板在 GitHub Copilot CLI 和 GitHub Copilot 应用中提供升级会话的可视视图。 使用其面板跟踪总体进度、方案、任务、项目、依赖项、评估结果、升级选项和代理活动。
若要打开仪表板,请要求Copilot在升级会话期间显示它。 仪表板当前在 Visual Studio、Visual Studio Code 或其他 IDE 中不可用。 有关每个面板的详细信息,请参阅 使用升级仪表板监视升级。
工作原理
若要启动升级或迁移过程,请参阅:
使用以下方法之一启动代理:
Visual Studio :右键单击解决方案资源管理器1 中的解决方案或项目,然后选择 Modernize 。 或者,打开 GitHub Copilot 对话助手 窗口并键入@Modernize。-
Visual Studio Code:打开 GitHub Copilot 对话助手 面板并键入
@upgrade。 -
GitHub Copilot CLI:键入
@upgrade,然后输入您的升级或迁移请求。 -
GitHub Copilot 应用:在代理选取器中,选择
Upgrade。
告知代理要升级或迁移的内容。
当要求升级代理升级应用时,Copilot在 Git 存储库中工作时,会首先提示你创建新分支。 然后Copilot评估项目并运行三阶段工作流。 每个阶段都会在 .github/upgrades/{scenarioId} 存储库中生成 Markdown 文件,这样您可以在继续之前查看接下来的内容。 如果.github/upgrades/{scenarioId}已存在于之前的尝试中,Copilot 会询问您是继续还是重新开始。
Copilot首先检查项目结构、依赖项和代码模式,以生成全面的评估。 该文件 assessment.md 列出了中断性变更、API 兼容性问题、已弃用的模式和升级范围。
在评估之后,Copilot会运行以下三个阶段:
Assessment: Copilot会检查您的项目结构、依赖项和代码模式,然后提出供您审查的策略决策,例如升级策略(从下到上、从上到下或一次性)、项目升级方法、技术现代化选项和兼容性管理。 Copilot将确认的决定保存到
upgrade-options.md。Planning: Copilot将评估和确认的选项转换为详细说明。 文件
plan.md记录升级策略、重构方法、依赖项路径和风险缓解措施。Execution: Copilot将计划分解为具有
tasks.md验证条件的顺序具体任务。 每个任务描述了单个更改,以及Copilot如何确认它成功。
编辑任何 Markdown 文件 .github/upgrades/{scenarioId} 以调整升级步骤或添加上下文,然后再继续。
升级策略
在评估阶段,代理会评估解决方案,并建议以下策略之一:
| 战略 | 最适用于 | 说明 |
|---|---|---|
| 自下而上 | 具有深度依赖项关系图的大型解决方案 | 首先升级叶项目,然后逐步往上推进。 |
| 从上到下 | 主要应用的快速意见反馈 | 首先升级应用程序项目,然后修复依赖项。 |
| 全部一次 | 小型简单解决方案 | 一次升级所有项目。 |
流模式
代理支持两种流程模式,用于控制暂停以接收输入的时间长度:
- 自动: 代理在所有阶段都工作,无需暂停,仅在真正的阻止器处停止。 最适合有经验的用户和简单升级。
- 引导:智能体在每个阶段边界都会暂停,以便可以在继续之前先查看评估、计划和任务。 最适合第一次用户和复杂的解决方案。
随时切换模式,方法是说 “暂停” (进入引导模式)或 “继续” (进入自动模式)。
状态管理
代理将所有升级状态存储在.github/upgrades/{scenarioId}/中。 文件夹包含:
| 文件 | Purpose |
|---|---|
assessment.md |
解决方案分析 |
upgrade-options.md |
确认的升级决策 |
plan.md |
有序任务计划 |
tasks.md |
实时进度仪表板 |
scenario-instructions.md |
代理的持久性内存,包括首选项、决策和自定义说明 |
tasks/{taskId}/task.md |
每个任务的范围和上下文 |
tasks/{taskId}/progress-details.md |
按任务执行说明和结果 |
由于所有状态都位于此文件夹中,因此可以关闭 IDE、在会话之间切换,甚至可以在开发环境之间切换(例如,在 VS Code 中启动并继续Visual Studio)。 代理从中断处继续。
Tip
将 .github/upgrades/ 文件夹提交到分支。 提交的状态充当备份,并允许团队成员查看升级进度。
执行升级
每个阶段完成后,根据需要查看和修改生成的文件,然后告知Copilot继续下一阶段。
到达 Execution 阶段时,请告知Copilot开始升级。 如果 Copilot 遇到问题,它会尝试识别原因并应用修补程序。 如果 Copilot 无法纠正该问题,它会请求你的帮助。 进行干预时,Copilot从所做的更改中吸取教训,并在问题再次出现时尝试自动应用这些更改。
升级后的结果
当 Copilot 运行每个任务时,它会更新 tasks.md 中的 .github/upgrades/{scenarioId} 文件,记录每个步骤的状态。 通过查看此文件来监视进度。 Copilot 会为流程的每个部分创建 Git 提交,以便可以回滚更改或查看更改内容。
升级完成后,Copilot聊天响应中显示后续步骤。
Telemetry
该工具收集有关项目类型、升级意向和升级持续时间的数据。 开发环境收集和聚合数据,不包含任何用户身份信息。 有关Microsoft隐私策略的详细信息,请参阅 Visual Studio 客户体验改善计划。