通过


GitHub Copilot现代化常见问题解答

GitHub Copilot现代化是一种交互式GitHub Copilot代理,可向开发环境添加功能。 本文解答常见问题。 有关详细信息,请参阅什么是GitHub Copilot更新

该工具需要以下GitHub Copilot订阅之一:

  • Copilot免费版(从 Visual Studio 2026 版本 18.1 开始)
  • Copilot Pro
  • Copilot Pro+
  • Copilot业务
  • Copilot Enterprise

GitHub Copilot 的现代化功能在 Visual Studio、Visual Studio Code、GitHub Copilot CLI 和 GitHub.com 上可用。 对于Visual Studio,它包含在 Visual Studio 2026(或 Visual Studio 2022 版本 17.14.17 及更新)。

有关安装的详细信息,请查看安装 GitHub Copilot 现代化模块

新式化代理

代理可以做什么?

GitHub Copilot 现代化功能有助于将 .NET(.NET、.NET Core、和 .NET Framework)项目升级到较新版本的 .NET。 它还有助于将服务迁移到Azure、升级依赖项,并在迁移后修复代码中的错误。 代理在Copilot聊天会话中执行以下步骤:

  • 分析项目并提出现代化计划。
  • 执行一系列任务,按照计划更新项目。
  • 在本地 Git 存储库的工作分支中操作。
  • 修复代码转换期间自动出现的问题。
  • 报告进度并允许访问代码更改和日志。
  • 在会话期间从您的交互中学习,以改进后续变换。

存在哪些限制?

  • 代理需要本地 Git 存储库。
  • 不保证升级或迁移建议遵循最佳做法。
  • 在升级过程中提供给Copilot的代码修复和更正不会自动保存,也不会在将来的升级中被记住。

我应使用哪个模型?

使用良好的编码模型。 模型可用性取决于Copilot订阅和环境。 有关模型的比较,请参阅 GitHub Copilot AI 模型比较

是否可以基于代码库训练模型?

否。 与传统的 AI 工具不同,你可能会输入自定义提示,而代理是以结构化方式运行的。 AI 嵌入在生成和修复过程中,因此其使用的提示是预定义的,并绑定到升级计划。 不能在代码库上训练它,但它用作代理的上下文。

是否可以自定义或指导代理?

代理程序使用Copilot提供的自定义内容,例如指令文件和技能。 定制取决于您的Copilot所支持的功能。 代理包含 30 多种内置现代化技能,这些技能根据代码库中检测到的技术自动加载。 还可以创建自定义技能和方案。 有关详细信息,请参阅 应用自定义升级说明

如果您手动调整修正、在聊天中提供额外说明或更新计划文件中的 Markdown,代理会在短期内从这种交互中学习。 首选项和决策将保存到 .github/upgrades/ 文件夹中的 scenario-instructions.md,以便在跨会话时保留。

代理是否存储我的源代码?

代理永远不会存储代码库或使用代码来训练模型。 升级或迁移完成后,代理将删除会话数据。

是否可以提供反馈?

Yes! 可通过两种方法提供反馈:

收集什么数据?

代理仅收集有关项目类型、升级意向和升级持续时间的遥测数据。 数据通过开发环境聚合,不包含用户身份信息。 有关Microsoft隐私策略的详细信息,请参阅 Visual Studio 客户体验改善计划

是否可以禁用遥测?

是的。 在 Visual Studio 中,选择 Help>Privacy>Privacy Settings>“No, 我不想参与。”遥测设置可能因开发环境而异。 有关详细信息,请查看工具的隐私设置。

升级.NET应用

代理可以升级哪些内容?

GitHub Copilot现代化有助于升级.NET项目或将其迁移到Azure。 代理支持多种方案,超出框架升级范围,包括 Aspire 集成、SDK 样式转换、Newtonsoft.Json 迁移、SqlClient 迁移、Azure Functions 升级,以及 语义内核 到代理迁移。 要了解完整的参考信息,请参阅 方案和技能参考

代理适用于以下项目类型:

  • Azure Functions
  • 控制台应用和类库
  • Web 技术,例如:
    • MVC
    • Blazor
    • Razor Pages
    • 网络应用程序接口
  • 桌面技术,例如Windows 窗体、Windows Presentation Foundation和 WinUI
  • .NET MAUI和Xamarin
  • 测试项目,如 MSTest、NUnit 和 xUnit
  • .NET框架项目

代理支持 C# 和 Visual Basic。

可以升级到哪些.NET版本?

代理支持以下升级路径:

来源 目标
.NET框架(任何版本) .NET 8 或更高版本
.NET Core 1.x–3.x .NET 8 或更高版本
.NET 5 或更高版本 .NET 8 或更高版本

是否可以脱机使用代理?

否。 代理需要 Internet 连接和GitHub Copilot云基础结构。 代理适用于所有Copilot订阅级别,包括免费级别。

代理是否修改解决方案外部的文件?

否。 代理仅修改工作区和 .github/upgrades/ 文件夹中的文件。 自定义任务数据保留在存储库中。

是否可以部分接受代理的更改?

是的。 由于每个任务单独提交,因此可以使用标准 Git 命令选取特定的提交。 请查看提交历史 git log --oneline 并用 git cherry-pick 来选择单个更改。

迁移到Azure

代理可以迁移哪些内容?

代理可帮助将.NET应用程序迁移到Azure,包括:

  • Web 应用
  • API 应用
  • Azure Functions
  • 容器化应用程序

迁移方案包括:

  • 对数据库进行现代化
  • 存储
  • 身份
  • Messaging
  • 事件流式处理
  • Email
  • 伐木业
  • 安全性

有关这些方案的详细信息,请参阅 迁移的预定义任务

是否可以监视评估进度?

是的。 通过Visual Studio接口监视评估进度。 代理在迁移过程中提供实时反馈和状态更新。 其他开发环境可能提供不同的监视选项。

在Visual Studio中,通过在评估运行时查看命令行输出来监视评估进度:

  1. 转到 “查看>输出 ”以打开 “输出 ”窗口。
  2. 在“ 输出 ”窗口中,找到下拉列表中的 “显示输出 ”。
  3. 从下拉列表中选择 AppModernizationExtension
  4. 此时会显示评估工具的命令行输出,其中显示了实时进度。

或者,使用键盘快捷方式 Ctrl+Alt+O 访问“输出”窗口。

若要了解详细信息,请参阅 什么是GitHub Copilot现代化?