Observação
O acesso a essa página exige autorização. Você pode tentar entrar ou alterar diretórios.
O acesso a essa página exige autorização. Você pode tentar alterar os diretórios.
A modernização de aplicativos do GitHub Copilot é um agente baseado em IA no Visual Studio que atualiza projetos .NET para versões mais recentes e migra aplicativos para o Azure. Este artigo orienta você a atualizar seus aplicativos .NET usando um fluxo de trabalho estruturado de três estágios: avaliação, planejamento e execução.
O agente de modernização analisa seus projetos e dependências, cria uma documentação de atualização detalhada em cada estágio e auxilia nas correções de código durante todo o processo. Ele dá suporte à atualização de versões mais antigas do .NET para as mais recentes, incluindo migrações do .NET Framework para o .NET moderno.
Pré-requisitos
Antes de começar, verifique se você tem os seguintes requisitos:
Sistema Operacional Windows.
Visual Studio 2026 (ou Visual Studio 2022 versão 17.14.17 e mais recente).
Carga de trabalho de desenvolvimento de desktop em .NET com os seguintes componentes opcionais habilitados:
- GitHub Copilot
- Modernização do aplicativo GitHub Copilot
Assinatura do GitHub Copilot (paga ou gratuita).
Entrou no Visual Studio usando uma conta do GitHub com acesso copilot.
Importante
Se você alterar as assinaturas, deverá reiniciar o Visual Studio.
O código deve ser escrito em C#.
Iniciar a atualização
Para iniciar uma atualização, interaja com o chat do GitHub Copilot para iniciar o agente de modernização:
Abra seu projeto ou solução do .NET no Visual Studio.
Acesse o agente de modernização de aplicativos do GitHub Copilot usando um destes métodos:
Clique com o botão direito do mouse na solução ou no projeto no Gerenciador de Soluções e selecione Modernizar.
— ou—
Abra a janela do GitHub Copilot Chat e digite
@modernizeseguido de sua solicitação de atualização ou migração.Informe o agente
@modernizesobre o que você deseja atualizar ou migrar.
Ao iniciar a atualização, o Copilot solicitará que você crie uma nova ramificação se estiver trabalhando em um repositório Git. Em seguida, o Copilot executa um fluxo de trabalho de três estágios, escrevendo um arquivo Markdown para cada estágio sob .github/upgrades em seu repositório. Se .github/upgrades já existir de uma tentativa anterior, Copilot perguntará se deseja continuar ou começar de novo.
Os três estágios são:
- Estágio de avaliação – o Copilot examina seu projeto para identificar alterações interruptivas, problemas de compatibilidade e requisitos de atualização.
- Estágio de planejamento – o Copilot cria uma especificação detalhada explicando como resolver todos os problemas.
- Estágio de execução – o Copilot divide o plano em tarefas sequenciais e executa a atualização.
Iniciar a avaliação e examinar os resultados
A fase de avaliação examina a estrutura do projeto, as dependências e os padrões de código para identificar o que precisa ser alterado. O Copilot inicia automaticamente este estágio e gera um arquivo assessment.md em .github/upgrades.
A avaliação lista alterações interruptivas, problemas de compatibilidade de API, padrões preteridos e o escopo de atualização para que você saiba exatamente o que precisa de atenção. O exemplo a seguir mostra parte de uma avaliação de um projeto do ASP.NET Core que está atualizando do .NET 6.0 para o .NET 9.0:
# Projects and dependencies analysis
This document provides a comprehensive overview of the projects and their dependencies in the context of upgrading to .NETCoreApp,Version=v10.0.
## Table of Contents
- [Executive Summary](#executive-Summary)
- [Highlevel Metrics](#highlevel-metrics)
- [Projects Compatibility](#projects-compatibility)
- [Package Compatibility](#package-compatibility)
- [API Compatibility](#api-compatibility)
- [Aggregate NuGet packages details](#aggregate-nuget-packages-details)
- [Top API Migration Challenges](#top-api-migration-challenges)
- [Technologies and Features](#technologies-and-features)
- [Most Frequent API Issues](#most-frequent-api-issues)
- [Projects Relationship Graph](#projects-relationship-graph)
- [Project Details](#project-details)
- [MvcMovie.Tests\MvcMovie.Tests.csproj](#mvcmovietestsmvcmovietestscsproj)
- [MvcMovie\MvcMovie.csproj](#mvcmoviemvcmoviecsproj)
- [RazorMovie.Tests\RazorMovie.Tests.csproj](#razormovietestsrazormovietestscsproj)
- [RazorMovie\RazorMovie.csproj](#razormovierazormoviecsproj)
- [WpfMovie.Tests\WpfMovie.Tests.csproj](#wpfmovietestswpfmovietestscsproj)
- [WpfMovie\WpfMovie.csproj](#wpfmoviewpfmoviecsproj)
...
Para examinar e personalizar o plano:
- Abra o
assessment.mdarquivo em.github/upgrades. - Examine as alterações de falha identificadas e os problemas de compatibilidade.
- Adicione qualquer contexto específico do projeto ou preocupações ao documento.
- Diga ao Copilot para passar à fase de planejamento.
Iniciar o planejamento e examinar o plano
A fase de planejamento converte a avaliação em uma especificação detalhada que explica como resolver cada problema. Quando você diz ao Copilot para prosseguir com o planejamento, ele gera um arquivo plan.md em .github/upgrades.
O plano documenta estratégias de atualização, abordagens de refatoração, caminhos de atualização de dependência e mitigações de risco. O exemplo a seguir mostra parte de um plano para um projeto do ASP.NET Core:
# .NET 10 Upgrade Plan
## Table of Contents
- [Executive Summary](#executive-summary)
- [Migration Strategy](#migration-strategy)
- [Detailed Dependency Analysis](#detailed-dependency-analysis)
- [Project-by-Project Plans](#project-by-project-plans)
- ... <removed to save space> ...
- ...
---
## Executive Summary
### Scenario Description
Upgrade all projects in the MvcMovieNet6 solution from .NET 6 to .NET 10 (Long Term Support). The solution contains:
- **RazorMovie**: ASP.NET Core Razor Pages application (primary focus)
- **MvcMovie**: ASP.NET Core MVC application
- **WpfMovie**: Windows Presentation Foundation desktop application
- **3 Test Projects**: Unit test projects for each application
### Scope & Current State
- **6 projects** requiring framework upgrade (net6.0 → net10.0)
- **1,862 total lines of code** across 54 files
- **16 NuGet packages** (6 require updates, 10 compatible)
- **65 identified issues** (1 security vulnerability, 1 deprecated package, 51 WPF API issues, minor behavioral changes)
- **All projects are SDK-style** (modern project format)
...
Para examinar e personalizar o plano:
Abra o
plan.mdarquivo em.github/upgrades.Examine as estratégias de atualização e as atualizações de dependência.
Edite o plano para ajustar as etapas de atualização ou adicionar contexto, se necessário.
Cuidado
O plano é baseado em interdependências de projeto. A atualização não terá êxito se você modificar o plano de forma que o caminho de migração não possa ser concluído. Por exemplo, se o Projeto A depender do Projeto B e você remover o Projeto B do plano de atualização, a atualização do Projeto A poderá falhar.
Peça ao Copilot para avançar para a fase de execução.
Iniciar a execução e executar a atualização
O estágio de execução divide o plano em tarefas sequenciais e concretas com critérios de validação. Quando você diz ao Copilot para prosseguir para a execução, ele gera um arquivo tasks.md em .github/upgrades.
A lista de tarefas descreve cada tarefa e explica como Copilot confirma que ela foi bem-sucedida. O exemplo a seguir mostra a lista de tarefas para uma solução que contém projetos ASP.NET Core e WPF:
# MvcMovieNet6 .NET 10 Upgrade Tasks
## Overview
This document tracks the execution of the MvcMovieNet6 solution upgrade from .NET 6 to .NET 10. All projects will be upgraded simultaneously in a single atomic operation.
**Progress**: 0/3 tasks complete (0%) 
---
## Tasks
### [ ] TASK-001: Verify prerequisites
**References**: Plan §Phase 0
- [ ] (1) Verify .NET 10 SDK installed per Plan §Phase 0
- [ ] (2) .NET 10 SDK meets minimum requirements (**Verify**)
---
### [ ] TASK-002: Atomic framework and package upgrade with compilation fixes
**References**: Plan §Phase 1, Plan §Package Update Reference, Plan §Breaking Changes Catalog, Plan §Project-by-Project Plans
- [ ] (1) Update TargetFramework to net10.0 in MvcMovie.csproj, MvcMovie.Tests.csproj, RazorMovie.csproj, RazorMovie.Tests.csproj per Plan §Phase 1
- [ ] (2) Update TargetFramework to net10.0-windows in WpfMovie.csproj, WpfMovie.Tests.csproj per Plan §Phase 1
- [ ] (3) All project files updated to target framework (**Verify**)
- [ ] (4) Update package references per Plan §Package Update Reference (MvcMovie: EF Core 10.0.1, Code Generation 10.0.0; RazorMovie: HtmlSanitizer 9.0.889 security fix)
- [ ] (5) All package references updated (**Verify**)
- [ ] (6) Restore all dependencies across solution
- [ ] (7) All dependencies restored successfully (**Verify**)
- [ ] (8) Build solution and fix all compilation errors per Plan §Breaking Changes Catalog (focus: BinaryFormatter removal in WpfMovie, WPF control API binary incompatibilities, UseExceptionHandler behavioral changes, HtmlSanitizer API changes)
- [ ] (9) Solution builds with 0 errors (**Verify**)
- [ ] (10) Commit changes with message: "TASK-002: Complete atomic upgrade to .NET 10 (all projects, packages, and compilation fixes)"
---
### [ ] TASK-003: Run full test suite and validate upgrade
**References**: Plan §Phase 2, Plan §Testing & Validation Strategy
- [ ] (1) Run tests in MvcMovie.Tests, RazorMovie.Tests, and WpfMovie.Tests projects
- [ ] (2) Fix any test failures (reference Plan §Breaking Changes Catalog for common issues: HtmlSanitizer behavior, BinaryFormatter replacement, framework behavioral changes)
- [ ] (3) Re-run all tests after fixes
- [ ] (4) All tests pass with 0 failures (**Verify**)
- [ ] (5) Commit test fixes with message: "TASK-003: Complete testing and validation for .NET 10 upgrade"
Para executar a atualização:
- Diga ao Copilot para iniciar a atualização.
- Monitore o progresso examinando o
tasks.mdarquivo à medida que o Copilot atualiza os status da tarefa. - Se o Copilot encontrar um problema que não pode ser resolvido, forneça a ajuda solicitada.
- Permita que o Copilot aprenda com suas intervenções e continue a atualização.
A ferramenta cria uma confirmação do Git para cada parte do processo, para que você possa reverter facilmente as alterações ou obter informações detalhadas sobre o que foi alterado.
Verificar a atualização
Quando a atualização for concluída, o Copilot mostrará as próximas etapas na resposta do chat para orientá-lo sobre o que fazer após o processo. Examine o tasks.md arquivo para obter o status de cada etapa. A ferramenta cria uma confirmação do Git para cada parte do processo de atualização, para que você possa reverter facilmente as alterações ou obter informações detalhadas sobre o que foi alterado.
O exemplo a seguir mostra tarefas concluídas para uma atualização de projeto do ASP.NET Core:
# MvcMovieNet6 .NET 10 Upgrade Tasks
## Overview
This document tracks the execution of the MvcMovieNet6 solution upgrade from .NET 6 to .NET 10. All projects will be upgraded simultaneously in a single atomic operation.
**Progress**: 3/3 tasks complete (100%) 
---
## Tasks
### [✓] TASK-001: Verify prerequisites *(Completed: 2025-12-12 21:09)*
**References**: Plan §Phase 0
- [✓] (1) Verify .NET 10 SDK installed per Plan §Phase 0
- [✓] (2) .NET 10 SDK meets minimum requirements (**Verify**)
...
Para verificar a atualização:
- Examine o status da tarefa final em
tasks.md. - Resolva os testes com falha ou erros de compilação.
- Verifique se todos os pacotes NuGet atualizados são compatíveis com seu aplicativo.
- Teste seu aplicativo minuciosamente para verificar se a atualização foi bem-sucedida.
- Aplique novos recursos e melhorias disponíveis na versão atualizada do .NET.