Compartir a través de


Plataforma de destino para Xamarin.Mac

En este artículo, se describen las plataformas de destino (bibliotecas de clases base) disponibles para Xamarin.Mac y las implicaciones de usarlas en el proyecto de Xamarin.Mac.

Target framework options for Xamarin.Mac

Fondo

Cada programa o biblioteca de .NET depende de la funcionalidad proporcionada por la biblioteca de clases base (BCL). Esta BCL incluye ensamblados como mscorlib, System, System.Net.Http y System.Xml, que proporcionan la funcionalidad común integrada en todos los lenguajes .NET.

A lo largo de los años, ha desarrollado varias versiones diferentes de esta BCL, optimizadas para diferentes casos de uso. La BCL de "escritorio" incluye un conjunto más completo de bibliotecas que podrían ser demasiado pesadas para otros casos de uso, mientras que la versión móvil se centra en garantizar que las API son seguras para la vinculación, lo que elimina el código sin usar para reducir la superficie de la aplicación.

Una de las repercusiones más importantes de estos diferentes marcos de destino es que todos los ensamblados de un programa determinado deben tener como destino ensamblados BCL compatibles. Si no fuera así, podría tener dos ensamblados vinculados a versiones diferentes del System.dll que discrepen respecto de la firma de un tipo determinado. Una biblioteca compartida puede tener como destino .NET Standard 2, que es el subconjunto común de las plataformas de destino o una plataforma de destino específica.

Hay tres opciones de plataforma de destino disponibles para Xamarin.Mac, cada una con diferentes ventajas y desventajas:

  • Moderno (llamado Móvil en documentación anterior): un subconjunto muy similar a lo que potencia Xamarin.iOS, altamente optimizado para el rendimiento y el tamaño. Esta plataforma de destino es segura para el enlazador, por lo que estos proyectos pueden reducir drásticamente su superficie final mediante la eliminación del código sin usar.

  • Completo (denominado XM 4.5 en documentación anterior): un subconjunto muy similar a la BCL de "escritorio", con algunas pequeñas eliminaciones. Dado que la plataforma de destino es casi idéntica a net45 (y versiones posteriores), puede consumir fácilmente muchos nugets que no proporcionan compilaciones netstandard2 o Xamarin.Mac específicas. Sin embargo, debido al uso de System.Configuration, no es compatible con la vinculación.

  • No compatible (denominado Sistema en documentación anterior): en lugar de vincular a una BCL proporcionada por Xamarin.Mac, usa el sistema actual instalado mono. Esto proporciona el conjunto más completo de ensamblados, incluidos algunos conocidos como problemáticos (System.Drawing, por ejemplo). Esta opción se usa únicamente como "último recurso" y se recomienda explorar todas las demás opciones antes de usarla. Como indica el nombre, los canales de soporte técnico oficiales no admiten su uso.

Establecimiento de marco de trabajo de destino

Para cambiar al tipo de plataforma de destino de un proyecto de Xamarin.Mac, haga lo siguiente:

  1. Abra el proyecto de Xamarin.Mac en Visual Studio para Mac.

  2. En el Explorador de soluciones, haga doble clic en el archivo de proyecto para abrir el cuadro de diálogo Opciones de proyecto.

  3. En la pestaña General, seleccione el tipo de Marco de destino que se adapte a las necesidades de la aplicación:

    Using the Project Options window to choose a target framework

  4. Haga clic en el botón Aceptar para guardar los cambios.

Debe limpiar y, después, recompilar el proyecto de Xamarin.Mac después de cambiar el tipo de plataforma de destino.

Resumen

En este artículo, se han tratado brevemente los distintos tipos de marcos de destino (bibliotecas de clases base) disponibles para una aplicación de Xamarin.Mac y cuándo se debe usar cada tipo de marco.