Udostępnij za pośrednictwem


Platforma docelowa dla platformy Xamarin.Mac

W tym artykule opisano platformy docelowe (biblioteki klas bazowych) dostępne dla platformY Xamarin.Mac oraz implikacje korzystania z nich w projekcie Xamarin.Mac.

Target framework options for Xamarin.Mac

Tło

Każdy program lub biblioteka platformy .NET zależy od funkcjonalności zapewnianych przez bibliotekę klas bazowych (BCL). Ta lista BCL obejmuje zestawy, takie jak mscorlib, System, System.Net.Http i System.Xml, które zapewniają wspólne funkcje wbudowane we wszystkie języki platformy .NET.

W ciągu lat opracowano wiele różnych wersji tej listy BCL, zoptymalizowanych pod kątem różnych przypadków użycia. Lista BCL "desktop" zawiera bogatszy zestaw bibliotek, które mogą być zbyt ciężkie dla innych przypadków użycia, podczas gdy urządzenia przenośne koncentrują się na zapewnieniu, że interfejsy API są bezpieczne do łączenia, co usuwa nieużywany kod w celu zmniejszenia zużycia aplikacji.

Jedną z ważniejszych reperkusji tych różnych platform docelowych jest to, że wszystkie zestawy w danym programie muszą być przeznaczone dla zgodnych zestawów BCL. Jeśli tak nie było, można mieć dwa zestawy połączone z różnymi wersjami System.dll nie zgadzając się na temat podpisu danego typu. Biblioteka udostępniona może dotyczyć platformy .NET Standard 2, która jest typowym podzbiorem struktur docelowych lub określoną platformą docelową.

Istnieją trzy opcje platformy docelowej dostępne dla platformy Xamarin.Mac, z których każda ma różne zalety i kompromisy:

  • Nowoczesne (o nazwie Mobile w starszej dokumentacji) — bardzo podobny podzestaw do tego, co obsługuje środowisko Xamarin.iOS, wysoce dostosowane do wydajności i rozmiaru. Ta struktura docelowa jest bezpieczna dla konsolidatora, więc te projekty mogą znacząco zmniejszyć swój końcowy ślad, usuwając nieużywany kod.

  • Pełna (nazywana XM 4.5 w starszej dokumentacji) — bardzo podobny podzbiór do listy BCL "desktop" z kilkoma małymi usunięciami. Ponieważ platforma docelowa jest prawie identyczna z net45 (i nowszymi), może łatwo korzystać z wielu pakietów nuget, które nie udostępniają kompilacji netstandard2 lub określonych kompilacji platformy Xamarin.Mac. Jednak ze względu na użycie System.Configuration jest on niezgodny z łączeniem.

  • Nieobsługiwane (nazywane systemem w starszej dokumentacji) — zamiast łączyć się z listą BCL dostarczaną przez platformę Xamarin.Mac, użyj bieżącego systemu zainstalowanego mono. Zapewnia to najpełniejszy zestaw zestawów, w tym niektóre znane jako problematyczne (na przykład System.Drawing). Ta opcja istnieje tylko z "ostatecznością" i zdecydowanie zaleca się wyczerpanie innych opcji przed jej użyciem. Jak wskazuje nazwa, użycie nie jest obsługiwane przez oficjalne kanały pomocy technicznej.

Ustawianie platformy docelowej

Aby zmienić typ platformy docelowej dla projektu Xamarin.Mac, wykonaj następujące czynności:

  1. Otwórz projekt Xamarin.Mac w Visual Studio dla komputerów Mac.

  2. W Eksplorator rozwiązań kliknij dwukrotnie plik projektu, aby otworzyć okno dialogowe Opcje projektu.

  3. Na karcie Ogólne wybierz typ platformy docelowej, która odpowiada potrzebom aplikacji:

    Using the Project Options window to choose a target framework

  4. Kliknij przycisk OK, aby zapisać zmiany.

Po przełączeniu typu Platformy docelowej należy wyczyścić, a następnie ponownie skompilować projekt Xamarin.Mac.

Podsumowanie

W tym artykule krótko opisano różne typy platform docelowych (biblioteki klas bazowych) dostępne dla aplikacji Xamarin.Mac i kiedy należy używać każdego typu platformy.