Nota:
El acceso a esta página requiere autorización. Puede intentar iniciar sesión o cambiar directorios.
El acceso a esta página requiere autorización. Puede intentar cambiar los directorios.
La modernización de aplicaciones con GitHub Copilot es un agente impulsado por inteligencia artificial en Visual Studio que actualiza proyectos de .NET a versiones más recientes y migra aplicaciones a Azure. Este artículo le guía a través de la actualización de las aplicaciones .NET mediante un flujo de trabajo estructurado de tres fases: evaluación, planeación y ejecución.
El agente de modernización analiza los proyectos y las dependencias, crea documentación de actualización detallada en cada fase y ayuda con correcciones de código en todo el proceso. Admite la actualización de versiones anteriores de .NET a la más reciente, incluidas las migraciones de .NET Framework a .NET modernas.
Prerrequisitos
Antes de comenzar, asegúrese de que tiene los siguientes requisitos:
Sistema operativo Windows.
Visual Studio 2026 (o Visual Studio 2022, versión 17.14.17 y versiones posteriores).
Carga de trabajo de desarrollo de escritorio de .NET con los siguientes componentes opcionales habilitados:
- GitHub Copilot
- Modernización de aplicaciones de GitHub Copilot
Suscripción a GitHub Copilot (de pago o gratuita).
Ha iniciado sesión en Visual Studio con una cuenta de GitHub con acceso a Copilot.
Importante
Si cambia las suscripciones, debe reiniciar Visual Studio.
El código debe escribirse en C#.
Iniciar la actualización
Para iniciar una actualización, interactúe con el chat de GitHub Copilot para iniciar el agente de modernización:
Abra el proyecto o la solución de .NET en Visual Studio.
Acceda al agente de modernización de aplicaciones de Copilot de GitHub mediante uno de estos métodos:
Haga clic con el botón derecho en la solución o proyecto en el Explorador de soluciones y seleccione Modernizar.
-O bien-
Abra la ventana Chat de Copilot de GitHub y escriba
@modernizeseguido de la solicitud de actualización o migración.Indique al
@modernizeagente lo que desea actualizar o migrar.
Al iniciar la actualización, Copilot le pide que cree una nueva rama si trabaja en un repositorio de Git. A continuación, Copilot ejecuta un flujo de trabajo de tres fases, escribiendo un archivo Markdown para cada fase bajo .github/upgrades en tu repositorio. Si .github/upgrades ya existe a partir de un intento anterior, Copilot pregunta si desea continuar o comenzar de nuevo.
Las tres fases son:
- Fase de evaluación : Copilot examina el proyecto para identificar cambios importantes, problemas de compatibilidad y requisitos de actualización.
- Fase de planificación : Copilot crea una especificación detallada que explica cómo resolver cada problema.
- Fase de ejecución: Copilot divide el plan en tareas secuenciales y realiza la actualización.
Inicio de la evaluación y revisión de los resultados
La fase de evaluación examina la estructura del proyecto, las dependencias y los patrones de código para identificar lo que necesita cambiar. Copilot inicia automáticamente esta fase y genera un archivo assessment.md en .github/upgrades.
En la evaluación se enumeran los cambios importantes, los problemas de compatibilidad de API, los patrones en desuso y el ámbito de actualización para que sepa exactamente qué necesita atención. En el ejemplo siguiente se muestra parte de una evaluación de un proyecto de ASP.NET Core que se actualiza de .NET 6.0 a .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 revisar y personalizar el plan:
- Abra el
assessment.mdarchivo en.github/upgrades. - Revise los cambios disruptivos identificados y los problemas de compatibilidad.
- Agregue cualquier contexto o preocupación específicos del proyecto al documento.
- Indique a Copilot que pase a la fase de planificación.
Empezar a planear y revisar el plan
La fase de planeación convierte la evaluación en una especificación detallada que explica cómo resolver cada problema. Cuando se indica a Copilot que continúe con la planeación, genera un plan.md archivo en .github/upgrades.
El plan documenta estrategias de actualización, enfoques de refactorización, rutas de actualización de dependencias y mitigaciones de riesgos. En el ejemplo siguiente se muestra parte de un plan para un proyecto 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 revisar y personalizar el plan:
Abra el
plan.mdarchivo en.github/upgrades.Revisar las estrategias de actualización y las modificaciones de dependencias.
Edite el plan para ajustar los pasos de actualización o agregue contexto si es necesario.
Precaución
El plan se basa en las interdependencias del proyecto. La actualización no tendrá éxito si modifica el plan de tal manera que no se pueda completar la ruta de migración. Por ejemplo, si el proyecto A depende del proyecto B y quita el proyecto B del plan de actualización, es posible que se produzca un error en la actualización del proyecto A .
Indique a Copilot que pase a la fase de ejecución.
Iniciar la ejecución y ejecutar la actualización
La fase de ejecución divide el plan en tareas secuenciales y concretas con criterios de validación. Cuando se indica a Copilot que continúe con la ejecución, genera un tasks.md archivo en .github/upgrades.
La lista de tareas describe cada tarea y explica cómo Copilot confirma que se realizó correctamente. En el ejemplo siguiente se muestra la lista de tareas de una solución que contiene proyectos de ASP.NET Core y 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 ejecutar la actualización:
- Indique a Copilot que inicie la actualización.
- Supervise el progreso revisando el
tasks.mdarchivo a medida que Copilot actualiza los estados de la tarea. - Si Copilot encuentra un problema que no puede resolver, proporcione la ayuda solicitada.
- Deje que Copilot aprenda de sus intervenciones y continúe con la actualización.
La herramienta crea una confirmación de Git para cada parte del proceso, por lo que puede revertir fácilmente los cambios o obtener información detallada sobre lo que ha cambiado.
Comprobación de la actualización
Cuando finalice la actualización, Copilot muestra los pasos siguientes en la respuesta del chat para guiarle sobre qué hacer después del proceso. Revise el tasks.md archivo para conocer el estado de cada paso. La herramienta crea una confirmación de Git para cada parte del proceso de actualización, por lo que puede revertir fácilmente los cambios o obtener información detallada sobre lo que ha cambiado.
En el ejemplo siguiente se muestran las tareas completadas de una actualización de proyecto de 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 comprobar la actualización:
- Revise el estado final de la tarea en
tasks.md. - Solucione las pruebas con errores o los errores de compilación.
- Asegúrese de que todos los paquetes NuGet actualizados son compatibles con la aplicación.
- Pruebe la aplicación exhaustivamente para comprobar que la actualización se ha realizado correctamente.
- Aplique nuevas características y mejoras disponibles en la versión actualizada de .NET.