场景和技能参考

GitHub Copilot现代化代理提供称为 scenarios 的端到端现代化工作流。 每个方案都指导你完成实际 C++ 现代化工作中特定类型的活动。 本页介绍可用的方案和技能,以便了解代理可以为项目执行的操作。

Scenarios

方案是一种托管工作流,指导你完成特定类型的现代化活动。

如何发现场景

无需记住情境名称。 代理会检测项目类型,并自动建议相关方案。

若要列出代理支持的方案,请在GitHub Copilot聊天窗口中询问“我的项目可以使用哪些方案?”

可用方案

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

Note

若要提出或提出其他现代化方案,请访问 开发者社区

MSVC 生成工具升级 (MSBuild)

此方案处理基于 MSBuild 的 C++ 项目的完整升级工作流:

  1. 重定目标:更新项目设置以面向最新安装的 MSVC 生成工具和平台工具集。
  2. 生成分析:生成解决方案并编录升级引入的所有错误和警告。
  3. 更新代码:替换已弃用的 API,解决一致性问题,并帮助进行重大更改。
  4. 验证:重新生成以确认已解决所有问题。

例如,此方案解决了以下问题:

  • 例如sprintf,弃用的 CRT 函数。sprintf_s
  • C++ 一致性更改,例如更严格的模板分析。
  • MSVC 版本之间的标准库更改,例如已删除的实验命名空间(例如 std::tr1)。
  • 较新的工具集中的警告即错误升级。
  • 从 Windows SDK 中删除的 API 的链接器错误。

MSVC 生成工具升级 (CMake)

此方案处理基于 CMake 的 C++ 项目的升级工作流:

  1. 生成分析:生成项目并编录升级引入的所有错误和警告。
  2. 更新代码:替换已弃用的 API,解决一致性问题,并帮助进行重大更改。
  3. 验证:重新生成以确认已解决所有问题。

例如,此方案解决了以下问题:

  • 例如sprintf,弃用的 CRT 函数。sprintf_s
  • C++ 一致性更改,例如更严格的模板分析。
  • MSVC 版本之间的标准库更改,例如已删除的实验命名空间(例如 std::tr1)。
  • 较新的工具集中的警告即错误升级。
  • 从 Windows SDK 中删除的 API 的链接器错误。

方案持久性

每个活动方案都会分配一个自己的文件夹.github/upgrades/{scenarioId}。 方案文件夹包含计划、任务进度、首选项和执行日志。 该文件夹将成为 Git 存储库的一部分。

技能

技能 较小,面向代理在方案中使用的现代化功能。 当代理在升级过程中遇到特定模式时,它会使用详细说明加载相关技能。

技能将根据代理在代码库中检测到的内容自动加载。 无需管理技能加载。

Note

目前没有特定于 C++ 现代化方案的其他技能。