GitHub Copilot 应用现代化是一个 GitHub Copilot 代理,可帮助你将项目升级到较新版本的 .NET,并快速自信地将 .NET 应用程序迁移到 Azure。 它指导你完成评估、解决方案建议、代码修复和验证(全部在 Visual Studio 中)。
此过程简化了现代化,提高了开发人员的工作效率和信心。 GitHub Copilot 应用现代化是一体式升级和迁移代理,它使用 AI 来提高开发人员的速度、质量和结果。
使用此代理,可以:
- 升级到较新版本的 .NET。
- 迁移技术和部署到 Azure。
- 使 .NET 应用现代化,尤其是在从 .NET Framework 升级时。
- 评估应用程序的代码、配置和依赖项。
- 规划和设置正确的 Azure 资源。
- 修复问题并应用云迁移的最佳做法。
- 验证您的应用程序是否已成功构建并通过测试。
提供反馈
反馈对于Microsoft和此代理的效率非常重要。 使用 “建议功能 ”和 “报告 Visual Studio 的问题”功能来提供反馈。
先决条件
在使用 GitHub Copilot 应用现代化之前,需要以下项:
Windows操作系统。
Visual Studio 2026 (或 Visual Studio 2022 版本 17.14.17 及更新)。
启用了以下可选组件的 .NET 桌面开发工作负载:
- GitHub Copilot
- 适用于 .NET 的 GitHub Copilot 应用现代化
GitHub Copilot 订阅(付费或免费)。
使用具有 Copilot 访问权限的 GitHub 帐户登录到 Visual Studio。
重要
如果更改订阅,则必须重启 Visual Studio。
代码必须用 C# 编写。
升级 .NET 项目
现代化代理支持升级用 C# 编码的项目。 代理支持以下项目类型:
- ASP.NET 核心(以及 MVC、Razor 页面和 Web API 等相关技术)
- Blazor
- Azure Functions
- Windows Presentation Foundation
- Windows 窗体
- 类库
- 控制台应用
若要了解如何开始升级,请参阅 如何使用 GitHub Copilot 应用现代化升级 .NET 应用。
升级路径
代理支持以下升级路径:
- 将项目从旧版 .NET 升级到最新版本。
- 将 .NET Framework 项目升级到 .NET。
- 使用新功能实现代码库的现代化。
- 将组件和服务迁移到 Azure。
将 .NET 项目迁移到 Azure
现代化代理结合了自动化分析、AI 驱动的代码修正、生成和漏洞检查以及部署自动化,以简化到 Azure 的迁移。 代理会评估就绪情况、应用修补程序,并通过这些功能简化迁移过程:
分析和智能建议。
评估应用程序的 Azure 迁移准备情况,并根据应用程序的依赖项和已确定的问题接收定制指南。
AI驱动的代码改进。
应用预定义的最佳做法代码模式,以尽量减少手动工作量加速现代化。
自动构建和 CVE 解析。
自动生成应用并解决编译错误和漏洞,简化开发。
无缝部署。
毫不费力地部署到 Azure,使代码从开发到云的速度比以往更快。
预定义的迁移任务
预定义的任务捕获使用 Azure 服务的行业最佳做法。 目前,适用于 .NET 的 GitHub Copilot 应用现代化提供了涵盖常见迁移方案的预定义任务。
迁移到 Azure 上的基于托管标识的数据库,包括 Azure SQL DB、Azure SQL MI 和 Azure PostgreSQL
使用安全托管标识身份验证从本地或旧数据库(例如 DB2、Oracle DB 或 SQL Server)迁移到 Azure SQL DB、Azure SQL 托管实例或 Azure PostgreSQL,实现数据层现代化。
迁移到 Azure 文件存储
将文件 I/O作从本地文件系统移动到 Azure 文件存储,以便进行可缩放的基于云的文件管理。
迁移到 Azure Blob 存储
将本地或跨云对象存储或本地文件系统文件 I/O 替换为用于非结构化数据的 Azure Blob 存储。
迁移到 Microsoft Entra ID
将身份验证和授权从 Windows Active Directory 过渡到 Microsoft Entra ID(以前为 Azure AD),以便进行新式标识管理。
通过使用托管标识和 Azure Key Vault,转移到安全的凭据
将配置或代码中的纯文本凭据替换为安全的托管身份,并使用 Azure Key Vault 进行密钥管理。
迁移到 Azure 服务总线
从旧消息队列或第三方消息队列(如 MSMQ 或 RabbitMQ)或 Amazon SQS(AWS 简单队列服务)迁移到 Azure 服务总线,以实现可靠的基于云的消息传送。
迁移到 Azure 通信服务电子邮件
将直接 SMTP 电子邮件替换为 Azure 通信服务,实现可缩放的安全电子邮件传递。
迁移到适用于 Apache Kafka 的 Confluent Cloud/Azure 事件中心
从本地或内部部署的 Kafka 过渡到使用 Confluent Cloud 或 Azure 事件中心的托管事件流。
迁移到 Azure 上的 OpenTelemetry
从 log4net、serilog 和 Windows 事件日志等本地日志记录框架转换到 Azure 上的 OpenTelemetry。
使用托管标识迁移至 Azure Cache for Redis
将内存中或本地 Redis 缓存实现替换为 Azure Redis 缓存,以实现高可用性、可伸缩性和企业级安全性。
工作原理
若要启动升级或迁移,请执行以下步骤与 GitHub Copilot 交互:
在 Visual Studio 中打开 .NET 项目或解决方案。
使用以下方法之一访问 GitHub Copilot 应用现代化代理:
右键单击 解决方案资源管理器 中的解决方案或项目,然后选择 “现代化”。
—或—
打开 GitHub Copilot 聊天 窗口,然后键入
@modernize升级或迁移请求。请向代理告知您要升级或迁移的内容。
当要求新式化代理升级应用时,如果使用的是 Git 存储库,Copilot 会首先提示你创建新分支。 然后,Copilot 运行三阶段工作流。 每个阶段都会在您的存储库的.github/upgrades下写入一个 Markdown 文件,方便您在继续之前查看下一步骤。 如果 .github/upgrades 是之前尝试中已存在的,Copilot 会询问是继续还是重新开始。
评估阶段 (
assessment.md)
Copilot 检查项目结构、依赖项和代码模式,以生成全面的评估。 本文档列出了中断性变更、API 兼容性问题、弃用的模式和升级范围,以便确切地了解需要注意的内容。规划阶段 (
plan.md)
Copilot 将评估转换为详细规范,该规范说明了如何解决每个问题。 该计划记录了升级策略、重构方法、依赖项升级路径和风险缓解措施。执行阶段 (
tasks.md)
Copilot 将计划分解为具有验证条件的有序具体任务。 每个任务描述单个更改,以及 Copilot 如何确认成功。
编辑任何 Markdown 文件 .github/upgrades 以调整升级步骤或添加上下文,然后再继续。
执行升级
随着每个阶段的准备,请告诉科皮洛特继续进入下一阶段,让你有时间研究和修改(如有必要)阶段已经安排的任何任务。
到达最后一个阶段后, 执行阶段,请告知 Copilot 开始升级。 如果 Copilot 遇到问题,它会尝试识别原因并应用修补程序。 如果 Copilot 无法纠正该问题,它会请求你的帮助。 当你进行干预时,Copilot 会从所做的更改中吸取教训,并在问题再次遇到时尝试自动为你应用这些更改。
升级后的结果
当 Copilot 运行每个任务时,它会将每个步骤的状态更新到 tasks.md 中的 .github/upgrades 文件。 通过查看此文件来监视进度。 该工具会为该过程的每个部分创建 Git 提交,以便可以轻松回滚更改或获取有关更改的详细信息。
升级完成后,Copilot 会在聊天的回复中显示下一步,以指导您在升级过程完成后要执行的操作。
遥测
该工具收集有关项目类型、升级意向和升级持续时间的数据。 Visual Studio 本身收集和聚合数据,不包含任何用户身份信息。 有关Microsoft隐私策略的详细信息,请参阅 Visual Studio 客户体验改善计划。