Plataforma de destino para Xamarin.Mac

En este artículo se tratan los marcos de destino (bibliotecas de clases base) disponibles para Xamarin.Mac y las implicaciones de usarlos en el proyecto de Xamarin.Mac.

Opciones de plataforma de destino para las opciones de plataformade destino de

Segundo plano

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 distintos 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 los dispositivos móviles se centran en garantizar que las API sean seguras para la vinculación, lo que elimina el código no usado para reducir la superficie de la aplicación.

Una de las repercusiones más importantes de estas distintas plataformas de destino es que todos los ensamblados de un programa determinado deben tener como destino ensamblados BCL compatibles. Si este no fuera el caso, podría tener dos ensamblados vinculados con distintas versiones delSystem.dllno estar de acuerdo con 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 ventajas y desventajas diferentes:

  • Moderno (denominado Móvil en documentación anterior): un subconjunto muy similar al que impulsa Xamarin.iOS, muy optimizado para el rendimiento y el tamaño. Esta plataforma de destino es segura para el vinculador, por lo que su superficie final se puede reducir drásticamente mediante la eliminación del código no utilizado.

  • Completo (denominado XM 4.5 en la documentación anterior): un subconjunto muy similar a la BCL de "escritorio", con algunas eliminaciones pequeñas. Como la plataforma de destino es casi idéntica a net45 (y versiones posteriores), puede consumir fácilmente muchos nuget que no proporcionan compilaciones netstandard2 o específicas de Xamarin.Mac. 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, use el sistema actual instalado mono. Esto proporciona el conjunto más completo de ensamblados, incluidos algunos que se sabe que son problemáticos (System.Drawing, por ejemplo). Esta opción solo tiene un "último recurso" y se recomienda encarecidamente agotar otras opciones antes de usarlo. Como su nombre indica, los canales de soporte técnico oficiales no admiten el uso.

Establecimiento de marco de trabajo de destino

Para cambiar al tipo de plataforma de destino para 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 plataforma de destino que se adapte a las necesidades de la aplicación:

    Uso de la Project opciones de destino para elegir unaplataforma de destino Mediante la ventana Project opciones para elegir una plataforma de

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

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

Resumen

En este artículo se han abordado 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.