Cílová architektura pro Xamarin.Mac

Tento článek popisuje cílové architektury (knihovny základních tříd) dostupné pro Xamarin.Mac a důsledky jejich použití v projektu Xamarin.Mac.

Target framework options for Xamarin.Mac

Pozadí

Každý program nebo knihovna .NET závisí na funkcích poskytovaných knihovnou základních tříd (BCL). Tento seznam BCL zahrnuje sestavení, jako jsou mscorlib, System, System.Net.Http a System.Xml, které poskytují společné funkce integrované do všech jazyků .NET.

V průběhu let se vyvinulo několik různých verzí tohoto seznamu BCL optimalizovaných pro různé případy použití. Seznam BCL "desktop" obsahuje bohatší sadu knihoven, které můžou být příliš náročné pro jiné případy použití, zatímco mobilní zařízení se zaměřuje na zajištění bezpečného propojení rozhraní API, což eliminuje nepoužitý kód, aby se snížil nároky na aplikace.

Jedním z důležitějších dopadů těchto různých cílových architektur je, že všechna sestavení v daném programu musí cílit na kompatibilní sestavení BCL. Pokud tomu tak není, mohli byste mít dvě sestavení propojená s různými verzemi System.dll nesouhlasit s podpisem daného typu. Sdílená knihovna může cílit na .NET Standard 2, což je společná podmnožina cílových architektur nebo konkrétní cílová architektura.

Pro Xamarin.Mac jsou k dispozici tři možnosti cílové architektury, z nichž každá má různé výhody a kompromisy:

  • Moderní (označovaná jako Mobile ve starší dokumentaci) – velmi podobná podmnožině, která využívá Xamarin.iOS, je vysoce vyladěná pro výkon a velikost. Tato cílová architektura je bezpečná pro linker, takže tyto projekty můžou mít konečné nároky výrazně sníženy odebráním nepoužívaného kódu.

  • Úplné (označované jako XM 4.5 ve starší dokumentaci) – velmi podobná podmnožině seznamu BCL "desktop" s několika malými odebráními. Vzhledem k tomu, že cílová architektura je téměř stejná jako net45 (a novější), může snadno využívat mnoho nugetů, které neposkytují buď netstandard2, nebo konkrétní sestavení Xamarin.Mac. Vzhledem k použití System.Configuration je ale nekompatibilní s propojením.

  • Nepodporované (označované jako Systém ve starší dokumentaci) – Místo propojení s seznamem BCL, který poskytuje Xamarin.Mac, použijte aktuální systém nainstalovaný mono. To poskytuje nejplnější sadu sestavení, včetně některých známých, že jsou problematické (Například System.Drawing). Tato možnost existuje pouze s "posledním místem" a důrazně doporučujeme před použitím vyčerpat další možnosti. Jak už název napovídá, používání není podporováno oficiálními kanály podpory.

Nastavení cílové architektury

Pokud chcete změnit typ cílové architektury pro projekt Xamarin.Mac, postupujte takto:

  1. Otevřete projekt Xamarin.Mac v Visual Studio pro Mac.

  2. V Průzkumník řešení poklikejte na soubor projektu a otevřete dialogové okno Možnosti projektu.

  3. Na kartě Obecné vyberte typ cílové architektury, který vyhovuje potřebám vaší aplikace:

    Using the Project Options window to choose a target framework

  4. Kliknutím na tlačítko OK uložte provedené změny.

Po přepnutí typu Cílové rozhraní byste měli projekt Xamarin.Mac vyčistit a znovu sestavit.

Shrnutí

Tento článek stručně popisuje různé typy cílových architektur (knihovny základních tříd), které jsou k dispozici pro aplikaci Xamarin.Mac a kdy se mají použít jednotlivé typy rozhraní.