什么是 GitHub Copilot 的现代化?

GitHub Copilot Modernization 是一个 GitHub Copilot 代理,可帮助你升级并实现 C++ 项目的现代化改造。 它指导你完成评估、解决方案建议、代码修复和Visual Studio中的验证。

Scenarios

智能体提供称为 场景 的端到端现代化工作流。 每个方案都指导你完成特定类型的现代化任务。

Scenario 说明 示例提示
MSVC 生成工具升级 (MSBuild) 将基于 MSBuild 的项目 (.sln.vcxproj) 升级到较新版本的 MSVC 生成工具,并解决与升级相关的生成问题。 “升级我的项目以使用 MSVC 生成工具的最新已安装版本”
MSVC 生成工具升级 (CMake) 使用较新版本的 MSVC 生成工具配置项目后,解决基于 CMake 的项目中的升级相关的生成问题。 “解决升级项目以使用较新的 MSVC 生成工具而导致的任何生成问题”

Note

如果您想提出其他现代化方案或为其投票支持,请访问开发者社区

有关所有方案的完整参考,请参阅 方案和技能参考

先决条件

在开始之前,请确保已做好以下准备:

  • Visual Studio 2026 版本 18.7 或更高版本。
  • 一个 GitHub Copilot 订阅。
  • 基于 MSBuild 的代码库(.sln,) .vcxproj或基于 CMake 的代码库。

有关详细设置步骤,请参阅 安装适用于 C++ 的 GitHub Copilot 现代化功能

工作原理

若要启动现代化工作流,请执行以下操作:

  1. 在Visual Studio中打开 C++ 项目或解决方案。
  2. 启动代理:在 解决方案资源管理器 中,右键单击解决方案或项目,然后选择 Modernize。 或者,在 GitHub Copilot 对话助手 中,键入 @Modernize
  3. 告诉代理要升级什么。

如果Visual Studio安装缺少项目当前使用的 MSVC 生成工具,则加载项目时应显示设置助手。 可以使用安装助手来安装缺少的 MSVC 版本或重新定位到已安装的 MSVC 版本。 如果你重新定向任何项目,你将看到一条信息栏消息,可直接带你进入 Modernize 代理工作流。

当你让该代理升级你的项目时,如果你当前位于 Git 仓库中,它会提示你创建一个新分支。 然后,它运行三阶段工作流。 每个阶段都会在 .github/upgrades/{scenarioId} 存储库中生成 Markdown 文件,这样您可以在继续之前查看接下来的内容。 如果由于先前的尝试,.github/upgrades/{scenarioId} 已经存在,代理会询问你是要继续还是重新开始。

阶段 1:评估

代理检查项目结构、依赖项和代码模式,并将全面的评估保存到 assessment.md。 代理还会为评审提供策略决策,例如升级策略和兼容性处理。

阶段 2:规划

代理将评估转换为详细规范。 文件 plan.md 记录升级策略、重构方法和风险缓解措施。

阶段 3:执行

代理将计划分解为按顺序执行的任务,并在 tasks.md 中附上验证标准。 每个任务描述单个更改,以及代理如何确认成功。

流模式

代理支持两种流模式:

  • 自动:无需暂停即可完成所有阶段,仅在真正的阻止器处停止。 此模式最适合直接升级。
  • 引导式:在每个阶段的分界处暂停,供您审核。 此模式最适合用于更大或更复杂的升级。

你可以随时通过修改 scenario-instructions.md 或指示代理切换模式来切换模式。 如果在 Automatic 模式下运行,则可能必须使用Copilot 对话助手提示窗口中的“取消”按钮停止代理,并指示代理在 Guided 模式下恢复。

状态管理

代理将所有状态存储在.github/upgrades/{scenarioId}中。

File Purpose
assessment.md 对您的解决方案的分析。
plan.md 有序的任务计划。
tasks.md 实时进度仪表板。
scenario-instructions.md 代理的永久性内存。
execution-log.md 所有更改的审计跟踪。

可以关闭Visual Studio并稍后恢复。 代理通过读取状态文件,从上次中断的地方继续执行。

Tip

如果希望在执行其他工作的同时处理升级,请考虑以不同的提交形式将 .github/upgrades 文件夹提交到分支。 提交的状态充当备份,并允许团队成员查看升级进度。 独立的提交可让你在合并分支之前,轻松地将它们从本地 Git 历史记录中移除;如果你不想将这些提交永久保留在仓库中的话。

提供反馈

Microsoft 重视您的反馈,并利用它来改进其智能助手。 使用以下任一选项留下反馈: