适用于C++的 GitHub Copilot 应用现代化有助于将C++项目升级到较新的 MSVC 生成工具版本。 如有必要,Copilot 将升级项目的设置以使用最新的 MSVC,然后对执行生成后这些更改的影响进行彻底评估。 它制定了有关如何解决每个已确定问题的计划。 批准计划后,代理将完成一系列任务,并验证任何更改是否解决了已确定的问题。 如果仍有工作要做,代理程序将继续迭代,直到问题得到解决,或者你停止对话。
注释
适用于C++的 GitHub Copilot 应用现代化目前为预览版。
要求
- Visual Studio 2026 版本 18.3 或更高版本
- GitHub Copilot 帐户
- 基于 MSBuild 的代码库 (
.sln,.vcxproj) 或基于 CMake 的代码库
启用 GitHub Copilot 应用现代化更新以支持 C++
默认情况下,GitHub Copilot 应用的现代化功能已为 C++ 启用。 若要禁用或显式启用该功能,请执行以下步骤。
- 在 Visual Studio 中,选择 “工具 > 选项...” 以打开 “选项” 窗口。
- 导航到“所有设置 > GitHub > Copilot > C/C++”。
- 选中(启用)或清除(禁用)用于 启用 C++(预览)的 GitHub Copilot 应用现代化复选框。
- 重启 Visual Studio,使设置更改生效。
通过使用 GitHub Copilot 的应用程序现代化功能升级您的 C++ 代码库
本部分介绍如何启动新式化代理及其升级代码库的阶段。
启动现代化代理
GitHub Copilot 应用程序现代化是一种在 GitHub Copilot 聊天窗口中运行的代理程序。 您可以通过以下任一方式启动代理:
- 在“解决方案资源管理器”上下文菜单中:右键单击解决方案或解决方案资源管理器中加载的项目,然后从上下文菜单中选择 “现代化 ”。 这会自动启动 GitHub Copilot 聊天窗口,激活 Modernize 代理,并提供相关提示供您选择,以便开始使用。
从 GitHub Copilot 聊天:选择 “查看 > GitHub Copilot 聊天”打开 GitHub Copilot 聊天窗口。 GitHub Copilot 聊天窗口打开后,在提示中输入
@Modernize来激活 Modernize 代理。 例如,键入此提示:Use @Modernize to update MSVC Build Tools.
对于面向早期版本的 MSVC 生成工具的基于 MSBuild 的代码库
首次加载 .vcxproj 面向早期版本的 MSVC 生成工具的项目时,会看到用于 升级项目设置以使用较新版本的 MSVC 生成工具的选项。 如果你将任何项目重定向到新版 MSVC 构建工具并启用 GitHub Copilot C++ 应用现代化功能,你会在 Visual Studio 中收到一个信息栏,提示你使用 GitHub Copilot C++ 应用现代化功能来解决任何新引入的构建问题。 选择 运行 C++ 的 GitHub Copilot 应用现代化 会启动 GitHub Copilot 聊天窗口,激活现代化代理,并提供相关提示供您选择以开始使用。
开始升级
新式化代理处于活动状态后,可以通过提示来指示它升级 MSVC 生成工具,或从窗口中显示的列表中选择已构造的提示。 如果您在 GitHub Copilot Chat 窗口中通过在您的提示中提及 @Modernize 直接启动了 Agent,您可能不需要提供其他提示。
MSBuild 项目
CMake 项目
评估阶段
代理首先评估升级后出现的问题类型。 如果尚未升级项目,代理会指导你完成该过程,然后再创建其评估。 确保项目升级后,代理将生成代码库,分析报告的警告和错误,并生成一个 assessment.md 文件,描述发现的问题、严重性和其他有用信息。 这是你向代理告知任何其他有助于其制定计划的上下文的机会。
你可以在此选择做的事情之一是告诉代理程序不要解决某些已发现的问题,因为你知道解决这些问题涉及一些战略决策,或者因为这些是你确定对项目可以接受的预先存在的警告。 您应该仔细阅读该计划,并在需要的地方进行补充说明。 批准评估后,代理会继续创建解决问题的具体计划。
规划阶段
根据批准的评估以及你提供的任何其他上下文或说明,代理会创建一个文件,该文件建议一个 plan.md 详细计划来解决每个已识别的问题。 如果代理生成的计划与组织的编码风格或做法不匹配,则可以向代理提供该指导,并使其以不同的方式解决问题。 在就计划达成一致后,代理将转到执行阶段。
执行阶段
现在代理有一个计划,它会分解执行计划所需的任务。 可以根据需要正确定义这些任务。 这些任务甚至可以包括在分支上工作或在同一次提交中提交特定更改的步骤。 进行任何更改后,代理会再次生成项目,以确认问题已解决。 如果问题未解决,代理会与您反复沟通,直到问题解决,您满意为止。
升级后验证
代理完成后,请通过任何现有的测试基础结构执行更改。 让同事查看拉取请求中的更改。 由于此功能目前处于预览状态,因此你可能会收到信息栏以完成产品调查,让产品团队知道代理在代码库上的执行方式。 产品团队期待了解他们如何能够改进(软件)代理,以便于解决您的问题,并加快您的升级和现代化工作。