Nota
O acesso a esta página requer autorização. Podes tentar iniciar sessão ou mudar de diretório.
O acesso a esta página requer autorização. Podes tentar mudar de diretório.
A modernização de aplicações GitHub Copilot é um agente alimentado por IA no Visual Studio que atualiza projetos .NET para versões mais recentes e migra aplicações para Azure. Este artigo orienta-o na atualização das suas aplicações .NET através de um fluxo de trabalho estruturado em três etapas: avaliação, planeamento e execução.
O agente de modernização analisa os seus projetos e dependências, cria documentação detalhada de atualização em cada etapa e auxilia nas correções de código ao longo de todo o processo. Ele suporta a 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, certifique-se de que tem os seguintes requisitos:
Sistema operativo Windows.
Visual Studio 2026 (ou Visual Studio 2022 versão 17.14.17 e posteriores).
Trabalho de desenvolvimento desktop .NET com os seguintes componentes opcionais ativados:
- GitHub Copilot
- Modernização do aplicativo GitHub Copilot
Subscrição do GitHub Copilot (paga ou gratuita).
Iniciei sessão no Visual Studio usando uma conta GitHub com acesso ao Copilot.
Importante
Se você alterar assinaturas, você deve 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 .NET no Visual Studio.
Acesse o agente de modernização do aplicativo GitHub Copilot usando um destes métodos:
Clique com o botão direito do mouse na solução ou projeto no Gerenciador de Soluções e selecione Modernizar.
—ou—
Abra a janela GitHub Copilot Chat e digite
@modernizeseguido de sua solicitação de atualização ou migração.Diga ao
@modernizeagente o que você deseja atualizar ou migrar.
Quando inicias a atualização, o Copilot pede-te para criar um novo branch se estiveres a trabalhar num repositório Git. O Copilot executa então um fluxo de trabalho em três etapas, escrevendo um ficheiro Markdown para cada etapa no .github/upgrades teu repositório. Se .github/upgrades já existir de uma tentativa anterior, o Copilot pergunta se deve continuar ou recomeçar.
As três fases são:
- Fase de avaliação - O Copilot examina o seu projeto para identificar alterações urgentes, problemas de compatibilidade e requisitos de atualização.
- Fase de planeamento - O Copilot cria uma especificação detalhada explicando como resolver todos os problemas.
- Fase de execução - O Copilot divide o plano em tarefas sequenciais e realiza a atualização.
Iniciar a avaliação e rever 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 de mudar. O Copilot inicia automaticamente esta fase e gera um assessment.md ficheiro em .github/upgrades.
A avaliação lista alterações urgentes, problemas de compatibilidade com APIs, padrões obsoletos e o âmbito da atualização para que saiba exatamente o que precisa de atenção. O exemplo seguinte mostra parte de uma avaliação para um projeto ASP.NET Core a atualizar 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 rever e personalizar o plano:
- Abra o
assessment.mdficheiro em.github/upgrades. - Analise as alterações críticas identificadas e os problemas de compatibilidade.
- Adicione qualquer contexto ou preocupações específicas do projeto ao documento.
- Diz ao Copilot para avançar para a fase de planeamento.
Comece a planear e reveja o plano
A fase de planeamento converte a avaliação numa especificação detalhada que explica como resolver cada problema. Quando solicita ao Copilot que avance para o planeamento, este gera um plan.md ficheiro em .github/upgrades.
O plano documenta estratégias de atualização, abordagens de refatoração, percursos de atualização de dependências e medidas de mitigação de risco. O exemplo seguinte mostra parte de um plano para um projeto 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 rever e personalizar o plano:
Abra o
plan.mdficheiro em.github/upgrades.Revise as estratégias de atualização e as atualizações de dependências.
Editar o plano para ajustar os passos de atualização ou adicionar contexto se necessário.
Atenção
O plano baseia-se nas interdependências dos projetos. A atualização não terá êxito se você modificar o plano de tal 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.
Diga ao Copilot para passar para a fase de execução.
Inicie a execução e execute a atualização
A fase de execução divide o plano em tarefas sequenciais e concretas com critérios de validação. Quando disser ao Copilot para avançar para a execução, ele gera um ficheiro tasks.md em .github/upgrades.
A lista de tarefas descreve cada tarefa e explica como o Copilot confirma que foi bem-sucedida. O exemplo seguinte mostra a lista de tarefas para uma solução que contém ASP.NET projetos 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 Copiloto para iniciar a atualização.
- Monitorizar o progresso ao rever o ficheiro
tasks.mdà medida que o Copilot atualiza o estado das tarefas. - Se o Copilot encontrar um problema que não consiga resolver, forneça a ajuda solicitada.
- Deixe o Copilot aprender com as suas intervenções e continuar a atualização.
A ferramenta cria um commit Git para cada parte do processo, para que possa facilmente reverter alterações ou obter informações detalhadas sobre o que mudou.
Verificar a atualização
Quando a atualização terminar, o Copilot mostra os próximos passos na resposta do chat para o orientar sobre o que fazer após o processo. Revise o tasks.md ficheiro para ver o estado de cada etapa. A ferramenta cria um commit Git para cada parte do processo de atualização, para que possas facilmente reverter alterações ou obter informações detalhadas sobre o que mudou.
O exemplo seguinte mostra tarefas concluídas para uma atualização de projeto 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:
- Revise o estado final da tarefa em
tasks.md. - Corrigir quaisquer testes falhados ou erros de compilação.
- Certifique-se de que todos os pacotes NuGet atualizados sejam compatíveis com seu aplicativo.
- Teste a sua candidatura cuidadosamente para garantir que a atualização foi bem-sucedida.
- Aplique novos recursos e melhorias disponíveis na versão atualizada do .NET.