Compartir a través de


Migración de .NET Framework de Windows Forms a .NET

En este artículo se describe cómo actualizar una aplicación de escritorio de Windows Forms a .NET mediante el Asistente para actualización de .NET. Windows Forms sigue siendo un marco solo de Windows, aunque .NET es una tecnología multiplataforma.

Requisitos previos

Valoración

Debe analizar los proyectos antes de realizar una actualización. La realización de análisis de código en los proyectos con el Asistente para actualización de .NET genera un informe al que puede hacer referencia para identificar posibles bloqueadores de migración.

Para analizar los proyectos y generar un informe, haga clic con el botón derecho en el archivo de solución en Explorador de soluciones y seleccione Actualizar. Para obtener más información sobre cómo realizar un análisis, vea Analizar proyectos con el Asistente para actualización de .NET.

Migración de dependencias

Si va a actualizar varios proyectos, comience con proyectos que no tengan dependencias. En el ejemplo Juego coincidente, el proyectoMatchingGame depende de la bibliotecaMatchingGame.Logic, por lo que MatchingGame.Logic debería actualizarse primero.

Sugerencia

Asegúrese de tener una copia de seguridad del código, como en el control de código fuente o una copia.

Siga estos pasos para actualizar un proyecto en Visual Studio:

  1. Haga clic con el botón derecho en el proyecto MatchingGame.Logic en la ventana Explorador de soluciones y seleccione Actualizar:

    Captura de pantalla del elemento de menú Actualizar del asistente para actualización de .NET en Visual Studio.

    Se abre una nueva pestaña que le pide que elija qué actualización desea realizar.

  2. Seleccione Actualización local del proyecto.

    Captura de pantalla de la pestaña asistente para actualización de .NET. La opción

  3. A continuación, seleccione la plataforma de destino.

    En función del tipo de proyecto que está actualizando, se le presentan diferentes opciones. .NET Standard 2.0 puede usarse tanto en .NET Framework como en .NET. Esta es una buena opción si la biblioteca no se basa en una tecnología de escritorio como Windows Forms, lo que hace este proyecto.

    Seleccione .NET 9.0 y, a continuación, seleccione Siguiente.

    Captura de pantalla del Asistente para actualización de .NET. El mensaje de la plataforma de destino está abierto y .NET 8 está resaltado junto con el botón

  4. Se muestra un árbol con todos los artefactos relacionados con el proyecto, como archivos de código y bibliotecas. Puede actualizar artefactos individuales o todo el proyecto, que es el valor predeterminado. Seleccione Actualizar selección para iniciar la actualización.

    Captura de pantalla del Asistente para actualización de .NET. La página

  5. Una vez finalizada la actualización, se muestran los resultados:

    Captura de pantalla de la pestaña resultados de actualización del Asistente para actualización de .NET, en la que se muestran los elementos migrados del proyecto.

    Los artefactos con un círculo verde sólido se actualizaron mientras se omitían círculos verdes vacíos. Los artefactos omitidos significan que el asistente de actualización no encontró nada que actualizar.

Ahora que se actualiza la biblioteca auxiliar de la aplicación, actualice la aplicación principal.

Notas de los proyectos de Visual Basic

Actualmente, el Asistente para actualización de .NET no reconoce el uso de en el archivo de System.Configuration configuración creado por las plantillas de Visual Basic en .NET Framework. Tampoco respeta el uso de las My extensiones usadas en proyectos de .NET Framework, como My.Computer y My.User. Estas extensiones se quitaron en .NET. Debido a estos dos problemas, una biblioteca de Visual Basic no se compilará después de migrar con el Asistente para actualización de .NET.

Para solucionar este problema, el proyecto debe tener como destino Windows y hacer referencia a Windows Forms.

  1. Una vez completada la migración, haga doble clic en el proyecto MatchingGame.Logic en la ventana Explorador de soluciones.
  2. Busque el elemento <Project>/<PropertyGroup>.
  3. En el editor XML, cambie el valor de de <TargetFramework> de net9.0 a net9.0-windows.
  4. Agregue <UseWindowsForms>true</UseWindowsForms> a la línea después <TargetFramework>de .

La configuración del proyecto debe ser similar al fragmento de código siguiente:

<Project Sdk="Microsoft.NET.Sdk">
  <PropertyGroup>
    <TargetFramework>net9.0-windows</TargetFramework>
    <UseWindowsForms>true</UseWindowsForms>
    <OutputType>Library</OutputType>
    <MyType>Windows</MyType>

    ... other settings removed for brevity ...

Migración del proyecto principal

Una vez actualizadas todas las bibliotecas auxiliares, se puede actualizar el proyecto de aplicación principal. Con la aplicación de ejemplo, solo hay un proyecto de biblioteca que se va a actualizar, que se actualizó en la sección anterior.

  1. Haga clic con el botón derecho en el proyecto MatchingGame en la ventana Explorador de soluciones y seleccione Actualizar:
  2. Seleccione Actualización local del proyecto.
  3. Seleccione .NET 9.0 para la plataforma de destino y seleccione Siguiente.
  4. Deje todos los artefactos seleccionados y seleccione Actualizar selección.

Una vez completada la actualización, se muestran los resultados. Observe cómo el proyecto de Windows Forms tiene un símbolo de advertencia. Expanda ese elemento y se muestra más información sobre ese paso:

Captura de pantalla de la pestaña resultados de actualización del asistente para actualización de .NET, en la que se muestran algunos de los elementos de resultado tienen símbolos de advertencia.

Observe que el componente de actualización del proyecto menciona que la fuente predeterminada ha cambiado. Dado que la fuente puede afectar al diseño del control, debe comprobar todos los formularios y controles personalizados del proyecto para asegurarse de que la interfaz de usuario está organizada correctamente.

Generación de una compilación limpia

Una vez actualizado el proyecto principal, limpie y compílelo.

  1. Haga clic con el botón derecho en el proyecto MatchingGame en la ventana del Explorador de soluciones y seleccione Limpiar.
  2. Haga clic con el botón derecho en el proyecto MatchingGame en la ventana Explorador de soluciones y seleccione Compilar.

Si la aplicación encontró algún error, puede encontrarlos en la ventana Lista de errores con una recomendación sobre cómo corregirlas.

El proyecto de ejemplo de juego de coincidencia de Formularios Windows Forms ahora se actualiza a .NET 9.

Experiencia posterior a la actualización

Si va a migrar una aplicación de .NET Framework a .NET, revise el artículo Modernización después de actualizar a .NET desde .NET Framework .

  • Portabilidad de .NET Framework a .NET.

    La guía de portabilidad proporciona información general sobre lo que debe tener en cuenta al migrar el código de .NET Framework a .NET. La complejidad de los proyectos determina la cantidad de trabajo que se realizará después de la migración inicial de los archivos del proyecto.

  • Modernización después de actualizar a .NET desde .NET Framework.

    El mundo de .NET ha cambiado mucho desde .NET Framework. Este vínculo proporciona información sobre cómo modernizar la aplicación después de actualizarla.