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.
GitHub Copilot é um agente com tecnologia de IA que moderniza projetos .NET para versões mais recentes e migra aplicativos para o Microsoft Azure. Este artigo explica como atualizar seus aplicativos .NET com 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 detalhada de atualização em cada estágio e ajuda com correções de código durante todo o processo. O agente dá suporte à atualização de versões de .NET mais antigas para as mais recentes, incluindo atualizações do .NET Framework para o .NET moderno.
Pré-requisitos
Configure a modernização do GitHub Copilot em seu ambiente de desenvolvimento antes de começar a atualização. Para obter as etapas de instalação, consulte Modernização do GitHub Copilot.
Iniciar a atualização
Para iniciar uma atualização, use o agente modernize-dotnet no Copilot:
Abra seu .NET projeto ou solução em seu ambiente de desenvolvimento.
Inicie o agente usando um destes métodos:
-
Visual Studio: clique com o botão direito do mouse na solução ou projeto em Gerenciador de Soluções e selecione Modernize. Ou abra a janela GitHub Copilot Chat e digite
@Modernize. -
Visual Studio Code: abra o painel do GitHub Copilot Chat e digite
@modernize-dotnet. -
GitHub Copilot CLI: digite
@modernize-dotnetseguido de sua solicitação de atualização ou migração. -
GitHub.com: use o agente de codificação
modernize-dotnetem seu repositório.
-
Visual Studio: clique com o botão direito do mouse na solução ou projeto em Gerenciador de Soluções e selecione Modernize. Ou abra a janela GitHub Copilot Chat e digite
Diga ao agente o que deve ser atualizado ou migrado.
Quando você inicia a atualização, Copilot coleta informações de pré-inicialização: a versão da estrutura de destino, a estratégia de ramificação do Git e o modo de fluxo de trabalho (automático ou guiado por você). Copilot avalia seu projeto e executa um fluxo de trabalho de três estágios, gravando arquivos Markdown para cada estágio em .github/upgrades/{scenarioId} em seu repositório. O {scenarioId} valor é um identificador exclusivo para o tipo de atualização, como dotnet-version-upgrade. Se .github/upgrades/{scenarioId} já existir de uma tentativa anterior, Copilot perguntará se deseja continuar ou iniciar novamente.
Os três estágios são:
- Estágio de avaliação. Copilot examina seu projeto, apresenta decisões de estratégia para sua revisão e salva decisões confirmadas. Personalize a avaliação antes de continuar.
- Estágio de planejamento. Copilot cria uma especificação detalhada com as etapas para alcançar a meta de atualização.
- Estágio de execução. Copilot divide o plano em tarefas sequenciais e executa a atualização.
Examinar a avaliação
A avaliação examina a estrutura do projeto, as dependências e os padrões de código para identificar o que precisa ser alterado. Copilot inicia automaticamente a avaliação e gera um arquivo assessment.md em .github/upgrades/{scenarioId}.
A avaliação lista alterações disruptivas, problemas de compatibilidade de API, padrões obsoletos e escopo de atualização. O exemplo a seguir mostra parte de uma avaliação de um projeto de ASP.NET Core que está atualizando do .NET 6.0 para o .NET 10.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 a avaliação:
- Abra o
assessment.mdarquivo em.github/upgrades/{scenarioId}. - Analise as alterações de falha e os problemas de compatibilidade identificados.
- Adicione contexto ou preocupações específicos do projeto ao documento.
- Diga ao Copilot para prosseguir para a fase de planejamento.
Examinar as opções de atualização
Após a avaliação, Copilot avalia sua solução e apresenta decisões de estratégia de atualização para sua revisão. O agente recomenda uma abordagem com base na estrutura do seu projeto e salva as decisões confirmadas em upgrade-options.md em .github/upgrades/{scenarioId}.
As opções normalmente incluem:
- Estratégia de atualização. De baixo para cima (projetos iniciais primeiro), de cima para baixo (aplicativo primeiro) ou tudo de uma vez (todos os projetos de uma vez).
- Abordagem de atualização do projeto. Reescrita no local ou atualização paralela.
- Modernização da tecnologia. Caso queira atualizar tecnologias como Entity Framework (do EF6 para EF Core), injeção de dependências, registro de logs e configuração.
- Gerenciamento de pacotes. Se você deve adotar o Gerenciamento Central de Pacotes.
- Tratamento de compatibilidade. Como lidar com APIs sem suporte, pacotes incompatíveis e funcionalidade específica da plataforma.
Examine as opções propostas e confirme ou substitua-as. Diga ao Copilot para prosseguir para a fase de planejamento.
Iniciar o planejamento e examinar o plano
O estágio de planejamento converte a avaliação e as opções de atualização confirmadas em uma especificação detalhada que explica como resolver cada problema. Quando você diz a Copilot para prosseguir com o planejamento, ele gera um arquivo plan.md em .github/upgrades/{scenarioId}. O agente também cria um scenario-instructions.md arquivo que armazena preferências, decisões e instruções personalizadas para a atualização.
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 de 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/{scenarioId}.Analise 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 conforme necessário.
Cuidado
O plano depende das interdependências do projeto. A atualização não terá êxito se você modificar o plano de uma maneira que impeça a conclusão do caminho de atualização. Por exemplo, se Project A depender de Project B e você remover Project B do plano de atualização, a atualização Project A poderá falhar.
Diga ao Copilot para passar ao estágio 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ê instruir Copilot para continuar a execução, ele gera um arquivo tasks.md em .github/upgrades/{scenarioId}.
A lista de tarefas descreve cada tarefa e como Copilot valida o sucesso. O exemplo a seguir mostra uma 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 arquivo
tasks.mdà medida que Copilot atualiza os status da tarefa. - Se Copilot encontrar um problema que não pode resolver, forneça a ajuda solicitada.
- Com base em suas decisões e alterações, Copilot adapta sua estratégia às tarefas restantes e continua a atualização.
Copilot confirma alterações de acordo com a estratégia do Git configurada durante a pré-inicialização: por tarefa, por grupo de tarefas ou no final.
Verificar a atualização
Quando a atualização for concluída, Copilot mostrará as próximas etapas recomendadas na resposta do chat. Revise o arquivo tasks.md em .github/upgrades/{scenarioId} para obter o status de cada etapa.
O exemplo a seguir mostra as 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:
- 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 de .NET atualizada.
Conteúdo relacionado
- O que é a modernização do GitHub Copilot?
- Instalar a modernização do GitHub Copilot
- Conceitos básicos
- Práticas recomendadas
- Solucionar problemas da modernização do GitHub Copilot
- Perguntas frequentes sobre a modernização do GitHub Copilot