Introducción a la portabilidad de .NET Framework a .NET CoreOverview of porting from .NET Framework to .NET Core

Es posible que tenga código que se ejecuta actualmente en .NET Framework que le interesa portar a .NET Core.You might have code that currently runs on the .NET Framework that you're interested in porting to .NET Core. En este artículo se proporciona:This article provides:

  • Una introducción al proceso de portabilidad.An overview of the porting process.
  • Una lista de las herramientas que puede encontrar de utilidad al portar el código a .NET Core.A list of tools that you may find helpful when you're porting your code to .NET Core.

Introducción al proceso de portabilidadOverview of the porting process

Le recomendamos que use el siguiente proceso al portar un proyecto a .NET Core:We recommend you use the following process when porting your project to .NET Core:

  1. Redirija todos los proyectos que quiere portar a .NET Framework 4.7.2 o versiones superiores.Retarget all projects you wish to port to target .NET Framework 4.7.2 or higher.

    Este paso garantiza que puede usar alternativas de API para destinos específicos de .NET Framework en los casos donde .NET Core no admite una API determinada.This step ensures that you can use API alternatives for .NET Framework-specific targets when .NET Core doesn't support a particular API.

  2. Use el Analizador de portabilidad de .NET para analizar los ensamblados y ver si se pueden portar a .NET Core.Use the .NET Portability Analyzer to analyze your assemblies and see if they're portable to .NET Core.

    La herramienta Analizador de portabilidad de API analiza los ensamblados compilados y genera un informe.The API Portability Analyzer tool analyzes your compiled assemblies and generates a report. Este informe muestra un resumen de portabilidad de alto nivel y un desglose de cada API que está usando y que no está disponible en NET Core.This report shows a high-level portability summary and a breakdown of each API you're using that isn't available on NET Core.

  3. Instale el analizador de API de .NET en los proyectos para identificar las API que inician PlatformNotSupportedException en algunas plataformas y otros posibles problemas de compatibilidad.Install the .NET API analyzer into your projects to identify APIs that throw PlatformNotSupportedException on some platforms and some other potential compatibility issues.

    Esta herramienta es similar al analizador de portabilidad, pero en lugar de analizar si el código se pueden basar en .NET Core, analiza si se usa una API de forma que se inicie PlatformNotSupportedException en tiempo de ejecución.This tool is similar to the portability analyzer, but instead of analyzing if code can build on .NET Core, it analyzes whether you're using an API in a way that will throw a PlatformNotSupportedException at run time. Aunque esto no es habitual si va a realizar la portabilidad desde .NET Framework 4.7.2 o superior, es conveniente comprobarlo.Although this isn't common if you're moving from .NET Framework 4.7.2 or higher, it's good to check. Para obtener más información sobre las API que generan excepciones en .NET Core, consulte el artículo.For more information about APIs that throw exceptions on .NET Core, see APIs that always throw exceptions on .NET Core.

  4. Convierta todas las dependencias de packages.config en el formato de PackageReference con la herramienta de conversión en Visual Studio.Convert all of your packages.config dependencies to the PackageReference format with the conversion tool in Visual Studio.

    Este paso implica convertir las dependencias del formato packages.config heredado.This step involves converting your dependencies from the legacy packages.config format. packages.config no funciona en .NET Core, por lo que esta conversión es necesaria si tiene dependencias de paquete.packages.config doesn't work on .NET Core, so this conversion is required if you have package dependencies.

  5. Cree nuevos proyectos para .NET Core y copie en los archivos de código fuente, o intente convertir el archivo de proyecto existente con una herramienta.Create new projects for .NET Core and copy over source files, or attempt to convert your existing project file with a tool.

    .NET Core usa un formato de archivo de proyecto simplificado y diferente al de .NET Framework..NET Core uses a simplified (and different) project file format than .NET Framework. Deberá convertir los archivos de proyecto en este formato para continuar.You'll need to convert your project files into this format to continue.

  6. Porte el código de prueba.Port your test code.

    Dado que portar a .NET Core es un cambio considerable para el código base, se recomienda encarecidamente portar las proyectos de prueba de forma que se puedan ejecutar mientras porta el código.Because porting to .NET Core is such a significant change to your codebase, it's highly recommended to port your test projects so that you can run tests as you port your code over. MSTest, xUnit y NUnit funcionan en .NET Core.MSTest, xUnit, and NUnit all work on .NET Core.

Además, puede intentar portar soluciones más pequeñas o proyectos individuales en una operación en el formato de archivo de proyecto de .NET Core con la herramienta dotnet try-convert.Additionally, you can attempt to port smaller solutions or individual projects in one operation to the .NET Core project file format with the dotnet try-convert tool. No hay ninguna garantía de que dotnet try-convert funcione con todos los proyectos y puede provocar cambios sutiles de comportamiento de los que dependa.dotnet try-convert is not guaranteed to work for all your projects, and it may cause subtle changes in behavior that you depended on. Use esta herramienta como punto inicial que automatice los elementos básicos que se pueden automatizar.Use it as a starting point that automates the basic things that can be automated. No es una solución garantizada para migrar un proyecto.It isn't a guaranteed solution to migrating a project.

Pasos siguientesNext steps