Analizador de portabilidad de .NET
Importante
El puerto de API ha quedado en desuso en favor del análisis binario con la herramienta Asistente para actualización de .NET. El servicio back-end del puerto API se cerró, por lo que para usar la herramienta, es necesario hacerlo sin conexión. Para obtener más información, consulte Archivo Léame del puerto de API de .NET.
¿Quiere que sus bibliotecas sean multiplataforma? ¿Quiere ver cuánto trabajo se requiere para que su aplicación de .NET Framework se ejecute en .NET Core? El Analizador de portabilidad de .NET es una herramienta que analiza ensamblados y proporciona un informe detallado sobre las API de .NET que faltan para que las aplicaciones o bibliotecas sean portátiles en las plataformas .NET de destino. El analizador de portabilidad es una aplicación de consola que analiza los ensamblados mediante archivos o directorios especificados.
Cuando hayas convertido el proyecto para que tenga como destino la nueva plataforma, como .NET Core, puede usar la herramienta del analizador de API basada en Roslyn para identificar las API que producen excepciones PlatformNotSupportedException y otras incidencias de compatibilidad.
Destinos comunes
- .NET: tiene un diseño modular, admite la instalación en paralelo y tiene como destino escenarios multiplataforma. La instalación en paralelo permite adoptar nuevas versiones de .NET sin interrumpir otras aplicaciones. Si el objetivo es migrar la aplicación a .NET y admitir varias plataformas, este es el destino recomendado.
- .NET Standard: incluye las API de .NET Standard disponibles en todas las implementaciones de .NET.
- ASP.NET Core: un marco web moderno basado en .NET. Si el objetivo es migrar la aplicación web a .NET (Core) para admitir varias plataformas, este es el destino recomendado.
- Extensiones de plataforma de .NET + : incluye las API de .NET además del paquete de compatibilidad de Windows, que proporciona muchas de las tecnologías de .NET Framework específicas de Windows.
- Extensiones de plataforma de .NET Standard + : incluye las APIs de .NET Standard además del Paquete de Compatibilidad de Windows, que proporciona muchas de las tecnologías de .NET Framework específicas de Windows.
Cómo usar el Analizador de portabilidad de .NET
Para comenzar a usar el Analizador de portabilidad de .NET en Visual Studio, primero debe clonar y compilar el proyecto dotnet-apiport. Funciona en Visual Studio 2017 y versiones de Visual Studio 2019.
Importante
El Analizador de portabilidad de .NET no se admite en Visual Studio 2022.
Vista completa de la solución
Un paso útil para analizar una solución con muchos proyectos es visualizar las dependencias para comprender qué subconjunto de ensamblados dependen de qué. La recomendación general es aplicar los resultados del análisis en un enfoque de orden ascendente a partir de los nodos hoja de un gráfico de dependencias.
Para recuperar esto, ejecute el siguiente comando:
ApiPort.exe analyze -r DGML -f [directory or file]
El resultado sería similar al siguiente al abrirse en Visual Studio:
Análisis de portabilidad
Escriba el siguiente comando para analizar el directorio actual:
ApiPort.exe analyze -f .
Para analizar una lista específica de .dll archivos, escriba el siguiente comando:
ApiPort.exe analyze -f first.dll -f second.dll -f third.dll
Para establecer como destino una versión específica, use el -t
parámetro :
ApiPort.exe analyze -t ".NET, Version=5.0" -f .
Ejecute ApiPort.exe -?
para obtener más ayuda.
Se recomienda que incluya todos los archivos .exe y .dll relacionados que posea y desea portar, y que excluya los archivos de los que depende la aplicación, pero que no posee y no puede portar. Esto le proporcionará un informe de portabilidad más relevante.
Vista e interpretación de los resultados de portabilidad
Solo las API que no son compatibles con una plataforma de destino aparecen en el informe. El informe de portabilidad de .NET se guarda como un archivo con el formato especificado. El valor predeterminado es en un archivo de Excel ( .xlsx) ubicado en el directorio actual.
Resumen de portabilidad
En la sección Resumen de portabilidad del informe se muestra el porcentaje de portabilidad para cada ensamblado incluido en la ejecución. En el ejemplo anterior, el 71,24 % de las API de .NET Framework utilizadas en la aplicación svcutil
están disponibles en .NET Core + extensiones de la plataforma. Si ejecuta la herramienta Analizador de portabilidad de .NET en varios ensamblados, cada ensamblado debe tener una fila en el informe de Resumen de portabilidad.
Detalles
La sección Detalles del informe enumera las API que faltan desde cualquiera de las plataformas de destino seleccionadas.
- Tipo de destino: al tipo le falta la API desde una plataforma de destino.
- Miembro de destino: el método no está presente en una plataforma de destino.
- Nombre del ensamblado: el ensamblado de .NET Framework en el que se encuentra la API que falta.
- Cada una de las plataformas de destino seleccionada es una columna, como ".NET Core": El valor de "No compatible" significa que la API no se admite en esta plataforma de destino.
- Cambios recomendados: la API o tecnología recomendada a la que realizar el cambio. Actualmente, este campo está vacío o no está actualizado para muchas de las API. Debido al gran número de API, es un desafío importante mantenerlo actualizado.
Ensamblados que faltan
Puede encontrar la sección Ensamblados que faltan en el informe. Esta sección contiene una lista de ensamblados a los que hacen referencia los ensamblados analizados y que no se han analizado. Si se trata un ensamblado que posee, inclúyalo en la ejecución del analizador de portabilidad de API para que pueda obtener un informe detallado de portabilidad a nivel de API. Si se trata de una biblioteca de terceros, compruebe si hay una versión más reciente que admita la plataforma de destino y considere la posibilidad de usar dicha versión más reciente. Finalmente, la lista debe incluir todos los ensamblados de terceros de los que depende la aplicación que tengan una versión compatible con la plataforma de destino.
Consulte también
Para obtener más información sobre .NET Portability Analyzer, consulta la documentación de GitHub.