快速入门:使用 GitHub Copilot 现代化工具对 .NET 项目进行评估和迁移

在本快速入门中,你将使用适用于 .NET 的 GitHub Copilot 现代化来评估和迁移 .NET 项目。 你将完成以下任务:

  • 评估示例项目(Contoso University)
  • 启动迁移过程

Prerequisites

  • Windows操作系统。

  • Visual Studio 2026(或Visual Studio 2022 版本 17.14.17 及更新)。

  • .NET桌面开发工作负载启用以下可选组件:

    • GitHub Copilot
    • GitHub Copilot 现代化代理
  • GitHub Copilot订阅(付费或免费)。

  • 使用具有 Copilot 访问权限 的 GitHub 帐户登录到 Visual Studio。

    重要

    如果更改订阅,则必须重启Visual Studio。

  • 代码必须用 C# 编写。

注释

这些先决条件适用于Visual Studio。 有关其他开发环境的信息,请参阅 GitHub Copilot 现代化的安装指南

评估应用就绪情况

用于 .NET 评估的 GitHub Copilot 现代化有助于查找应用就绪性挑战、了解其影响,并查看建议的迁移任务。 每个迁移任务都包含对设置Azure资源、添加配置和更改代码的引用。 按照以下步骤开始迁移:

  1. .NET 迁移助手示例存储库克隆到您的计算机。

  2. 在Visual Studio中,从示例存储库打开 Contoso University 解决方案。

  3. 在解决方案资源管理器中,右键单击解决方案节点并选择Modernize

    显示上下文菜单中新式化选项的屏幕截图。

  4. “GitHub Copilot聊天”窗口随即打开,其中包含欢迎消息和预定义选项。 从可用选项中选择 Migrate to Azure,然后将其发送到 Copilot。

    显示包含迁移选项的欢迎消息的屏幕截图。

    Tip

    你可以直接打开GitHub Copilot聊天并发送@Modernize Migrate to Azure来启动评估和迁移流,而不是步骤 3 和步骤 4。

  5. 此时会打开新的Copilot聊天会话,并显示欢迎消息。 评估会自动启动,并分析项目以进行迁移准备。

    显示正在进行评估并显示状态指示器的屏幕截图。

  6. 评估完成后,会在聊天窗口中看到全面的评估报告 UI 页面和迁移任务列表。

    显示生成的评估报告以及详细结果的屏幕截图。

应用迁移

适用于 .NET 的 GitHub Copilot 现代化包括常见迁移方案的 预定义任务 ,并遵循Microsoft的最佳做法。

启动迁移任务

通过以下方式之一启动迁移任务:

选项 1. 从评估报告中运行

从上一步中选择评估报告中的 “运行任务 ”按钮以启动迁移任务。

选项 2. 在Copilot聊天中发送消息

在聊天中发送迁移任务编号(例如 1.1)或其名称。

在 Copilot 对话助手 中发送消息以开始迁移任务的截图。

计划和进度跟踪器生成

  • 开始迁移时,GitHub Copilot 会在代理模式下启动一个名为“现代化:从 <source technology> 中迁移到 <target technology>”的会话,其中包含预定义的提示。
  • 该工具在 .appmod/.migration 文件夹中创建两个文件:
    • plan.md:总体迁移计划。
    • progress.md:GitHub Copilot在完成任务时更新的进度跟踪器。
  • 在继续之前编辑这些文件以自定义迁移。

启动代码修正

  • 如果对计划和进度跟踪器感到满意,请输入启动迁移过程的提示,例如:

    The plan and progress tracker look good to me. Go ahead with the migration.
    
  • GitHub Copilot启动迁移过程,并可能要求你批准在模型上下文协议 (MCP) 服务器中使用知识库工具。 出现提示时授予权限。

  • Copilot遵循计划和进度跟踪系统:

    • 管理依赖项。
    • 应用配置更改。
    • 更改代码。
    • 生成解决方案,修复所有编译和配置错误,并确保生成成功。
    • 修复安全漏洞。

默认聊天消息

适用于 .NET 的 GitHub Copilot 现代化提供默认聊天消息选项来简化工作流。

截图中显示了 Copilot 对话助手 中的默认聊天消息选项。

选择其中一个预定义的选项,并在聊天中发送它:

  • 运行现代化评估:开始对应用程序进行新的评估,以确定迁移准备问题和Azure兼容性挑战。
  • 查看评估报告:打开以前的评估报告,并显示基于结果的迁移任务的摘要。 如果不存在以前的评估,则首先运行新的评估。
  • 浏览顶级迁移任务:显示建议的迁移任务和常见现代化方案,而不考虑任何特定的评估结果。

Tip

这些默认消息可帮助你快速导航常见工作流,而无需键入自定义提示。 还可以输入自己的消息,以便与Copilot进行交互,了解特定问题或需求。

后续步骤

Prerequisites

评估应用就绪情况

用于 .NET 评估的 GitHub Copilot 现代化有助于查找应用就绪性挑战、了解其影响,并查看建议的迁移任务。 每个迁移任务都包含对设置Azure资源、添加配置和更改代码的引用。 按照以下步骤开始迁移:

  1. .NET 迁移助手示例存储库克隆到您的计算机。

  2. 在Visual Studio Code中,从示例存储库打开 Contoso University 解决方案。

  3. 打开 GitHub Copilot 更新 扩展。

  4. “快速入门 ”部分中,选择“ 开始评估”。 此时会打开 “评估报告 ”页。

  5. 选择页面右上角的 “运行评估 ”。

    在“任务”部分中运行任务以启动迁移任务的屏幕截图。

  6. 评估会自动启动,并分析项目以进行迁移准备。

    运行分析项目以准备迁移的任务的屏幕截图。

  7. 评估完成后,会在聊天窗口中看到全面的评估报告 UI 页面和迁移任务列表。

    运行评估报告用户界面页面及迁移任务列表的屏幕截图。

应用迁移

适用于 .NET 的 GitHub Copilot 现代化包括常见迁移方案的 预定义任务 ,并遵循Microsoft的最佳做法。

基于聊天的迁移是开始迁移的建议方法。 自定义 AppModernization-DotNet 代理针对应用程序现代化任务进行优化。 此代理允许你使用简单的自然语言提示来执行复杂的迁移方案。

完成以下步骤以选择自定义代理并开始迁移:

  1. 请确保在Visual Studio Code中打开.NET项目。

  2. 选择 Activity Bar 中的聊天图标以打开Copilot聊天窗口。

  3. 在聊天窗口中,找到聊天输入框顶部的代理选择器下拉菜单。 从列表中选择 AppModernization-DotNet 。 此自定义代理专为.NET应用程序现代化和迁移方案而设计。

    Screenshot 在聊天窗口中选择.NET自定义代理。

  4. 在聊天窗口中使用格式 migrate from <source> to <target> 输入提示。 例如:

    migrate from rabbitmq to Azure service bus
    
  5. 代理分析代码、创建迁移计划、进行代码更改、运行验证并生成摘要。 选择 “继续 ”以继续执行每个步骤并 保留 以接受更改。

从 UI 启动迁移任务

还可以从 UI 启动迁移任务:

选项 1. 从评估报告中运行

从上一步中选择评估报告中的 “运行任务 ”按钮以启动迁移任务。

选项 2. 应用预定义的任务

TASKS - .NET 部分中运行特定任务。 例如,在数据库任务中的将数据库迁移到Azure Database for PostgreSQL任务,会更新数据库连接、配置、依赖项和数据访问代码以使用Azure Database for PostgreSQL。

运行特定预定义任务的屏幕截图。

计划和进度跟踪器生成

启动迁移时,GitHub Copilot在代理模式下启动会话。

该工具在 .github/appmod/code-migration/<target-branch-name> 文件夹中创建两个文件:

  • plan.md:总体迁移计划。
  • progress.md:GitHub Copilot在完成任务时更新的进度跟踪器。

在继续之前编辑这些文件以自定义迁移。

迁移任务期间计划生成的屏幕截图。

启动代码修正

如果对计划和进度跟踪器感到满意,请输入 继续 开始迁移。

GitHub Copilot启动迁移过程,并可能要求你批准在模型上下文协议 (MCP) 服务器中使用知识库工具。 出现提示时授予权限。

Copilot遵循计划和进度跟踪系统:

  • 管理依赖项。
  • 应用配置更改。
  • 更改代码。
  • 生成项目,修复所有编译和配置错误,并确保生成成功。
  • 修复安全漏洞。

重复选择或输入 “继续” 以确认使用工具或命令,并等待代码更改完成。

注释

在 Visual Studio Code 中,默认情况下,新式化使用 AppModernization-DotNet Claude Sonnet 4.5 的自定义代理,以便在更新 .NET 代码以迁移到 Azure 时获得最佳结果。 如果 Sonnet 4.5 不可用,系统将转而使用“自动”模型。 通过从代理菜单中选择配置自定义代理,可以配置自定义代理以修改“模型”设置。 或者,可以使用聊天窗口中的语言模型选取器来切换当前聊天会话的模型。

验证迭代

代码更改完成后,迁移工具将启动验证并修复迭代循环。 此循环包括以下五个步骤:

  1. 检测当前依赖项中的常见漏洞和暴露(CVE),并修复它们。
  2. 生成项目并解决任何生成错误。
  3. 分析代码以保持功能一致性。
  4. 分析项目中的单元测试失败,然后自动生成修复计划,直至测试通过。
  5. 分析初始代码迁移中缺少的迁移项的代码并修复它们。

完成所有过程后,迁移工具将生成摘要。 通过选择 “保留”查看代码更改并确认这些更改。

Prerequisites

安装插件

  1. 在终端中,运行 copilot 以启动 Copilot CLI。

    copilot
    
  2. 添加市场并安装插件:

    /plugin marketplace add microsoft/github-copilot-modernization
    /plugin install github-copilot-modernization@github-copilot-modernization
    
  3. 验证插件是否已安装:

    /plugin list
    

    应在列表中看到 github-copilot-modernization

评估应用就绪情况

GitHub Copilot现代化评估有助于查找应用就绪性挑战、了解其影响,并查看建议的迁移任务。

  1. .NET 迁移助手示例存储库克隆到您的计算机。

  2. 导航到 Contoso University 项目文件夹:

    cd dotnet-migration-copilot-samples/ContosoUniversity
    
  3. 使用现代化代理开始Copilot CLI:

    copilot --agent=github-copilot-modernization:modernize
    

    重要

    在运行任何现代化提示词之前,您必须先选择 github-copilot-modernization:modernize 代理。 如果已在 Copilot CLI 会话中,请使用/agent并从github-copilot-modernization:modernize列表中选择。

  4. 要求代理评估应用程序:

    copilot> modernize my application
    

    代理会自动启动评估阶段,并分析项目的迁移准备情况,包括依赖项、框架和Azure迁移机会。

  5. 评估完成后,代理会显示调查结果摘要,并询问: “继续规划?”

迁移应用

查看评估后,请继续执行规划和执行阶段。

全面现代化(评估→计划→执行)

在确认每个阶段时,代理会自动运行完整的工作流:

  1. 评估 →查看结果→确认继续。
  2. 规划 →代理生成迁移计划(plan.md)→查看并确认。
  3. 执行 →代理将任务路由到应用代码更改、运行生成和验证结果的专用执行程序代理。

代理处理所有内容 - 只需在每个检查点进行确认。

特定迁移任务

如果已知道要迁移的内容,请跳过评估并直接执行:

copilot> migrate from local SQL Server to Azure SQL Database

对于多个任务,请列出它们:

copilot> migrate from RabbitMQ to Azure Service Bus and upgrade to .NET 9

无人参与执行

若要在没有提示的情况下完全自主执行,请使用标志 --allow-all

copilot --agent=github-copilot-modernization:modernize --allow-all

企业 playbook

若要嵌入现代化策略,请将 .github/modernize/playbook/ Markdown 文件置于目录中。 在规划阶段,playbook 约束与评估结果合并 - playbook 策略优先于评估建议。

有关详细信息,请参阅在 Copilot CLI 中使用GitHub Copilot现代化将.NET应用迁移到Azure

Validation

代理应用代码更改后,它会运行验证检查:

  1. 生成项目并解决任何生成错误。
  2. 检测依赖项中的常见漏洞和暴露(CVE),并修复它们。
  3. 运行测试和修复任何失败。

完成所有验证检查后,代理将生成摘要。 查看结果并验证:

dotnet build
dotnet test

后续步骤