Nota
L'accés a aquesta pàgina requereix autorització. Podeu provar d'iniciar la sessió o de canviar els directoris.
L'accés a aquesta pàgina requereix autorització. Podeu provar de canviar els directoris.
La modernización de GitHub Copilot es un agente con tecnología de inteligencia artificial que actualiza los 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 de .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 las más recientes, incluidas las migraciones de .NET Framework a .NET modernas.
Prerrequisitos
Configure la modernización de GitHub Copilot en el entorno de desarrollo antes de iniciar una actualización. Para conocer los pasos de instalación, consulte Instalar la modernización de GitHub Copilot.
Iniciar la actualización
Para iniciar una actualización, use el agente de modernize-dotnet en Copilot:
Abra el proyecto o la solución de .NET en el entorno de desarrollo.
Inicie el agente mediante uno de estos métodos:
-
Visual Studio: haga clic con el botón derecho en la solución o proyecto en Solution Explorer y seleccione Modernize. O abra la ventana GitHub Copilot Chat y escriba
@Modernize. -
Visual Studio Code: abra el panel GitHub Copilot Chat y escriba
@modernize-dotnet. -
GitHub Copilot CLI: escriba
@modernize-dotnetseguido de la solicitud de actualización o migración. -
GitHub.com: use el agente de codificación /
modernize-dotneten el repositorio.
-
Visual Studio: haga clic con el botón derecho en la solución o proyecto en Solution Explorer y seleccione Modernize. O abra la ventana GitHub Copilot Chat y escriba
Dígale al agente qué actualizar o migrar.
Al iniciar la actualización, Copilot recopila información de inicialización previa: la versión del marco de destino, la estrategia de bifurcación de Git y el modo de flujo de trabajo (automático o guiado por usted). Copilot luego ejecuta un flujo de trabajo de tres fases, escribiendo un archivo Markdown para cada fase en .github/upgrades/{scenarioId} en el repositorio.
{scenarioId} es un identificador único para el tipo de actualización, como dotnet-version-upgrade. Si .github/upgrades/{scenarioId} 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/{scenarioId}.
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. 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 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 revisar y personalizar la evaluación:
- Abra el
assessment.mdarchivo en.github/upgrades/{scenarioId}. - 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 pasar 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 continuar con la planeación, genera un archivo plan.md en .github/upgrades/{scenarioId}.
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/{scenarioId}.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 tiene éxito si modifica el plan de tal manera que la ruta de migración no se pueda completar. 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 le indica a el Copilot que continúe con la ejecución, genera un archivo tasks.md en .github/upgrades/{scenarioId}.
La lista de tareas describe cada tarea y cómo Copilot valida el éxito. 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 Copilot que inicie la actualización.
- Supervise el progreso revisando el archivo
tasks.mdmientras Copilot actualiza los estados de las tareas. - Si Copilot encuentra un problema que no se puede resolver, proporcione la ayuda solicitada.
- En función de sus decisiones y cambios, Copilot adapta su estrategia a las tareas restantes y continúa la actualización.
Copilot confirma los cambios según la estrategia de Git que configuró durante la inicialización previa: por tarea, por grupo de tareas o al final.
Comprobación de la actualización
Cuando finalice la actualización, Copilot muestra los pasos siguientes recomendados en la respuesta del chat. Revise el tasks.md archivo en .github/upgrades/{scenarioId} para conocer el estado de cada paso.
En el ejemplo siguiente se muestran las tareas completadas para una actualización del 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.