Ziel Framework für xamarin. MacTarget Framework for Xamarin.Mac

Dieser Artikel behandelt die Ziel-Frameworks (Basisklassen Bibliotheken), die für xamarin. Mac verfügbar sind, und die Auswirkungen der Verwendung in Ihrem xamarin. Mac-Projekt.This article covers the target frameworks (Base Class Libraries) available for Xamarin.Mac, and the implications of using them in your Xamarin.Mac project.

Ziel Framework-Optionen für xamarin. MacTarget framework options for Xamarin.Mac

HintergrundBackground

Jedes .NET-Programm oder jede beliebige Bibliothek ist von der von der Basisklassen Bibliothek (BCL) bereitgestellten Funktionalität abhängig.Every .NET program or library depends on functionality provided by the Base Class Library (BCL). Diese BCL umfasst Assemblys wie mscorlib, System, System .net. http und System. XML, die die allgemeinen Funktionen bereitstellen, die in alle .NET-Sprachen integriert sind.This BCL includes assemblies such as mscorlib, System, System.Net.Http, and System.Xml that provide the common functionality built into all .NET languages.

Im Laufe der Jahre wurden mehrere verschiedene Versionen dieser BCL entwickelt, die für unterschiedliche Anwendungsfälle optimiert wurden.Over the years, there have developed multiple different versions of this BCL, optimized for different use cases. Die BCL "Desktop" umfasst einen umfassenderen Satz an Bibliotheken, die für andere Anwendungsfälle zu vielleicht zu groß werden können, während sich der Mobile Fokus darauf konzentriert, dass APIs für die Verknüpfung sicher sindThe “desktop” BCL includes a richer set of libraries which might be too heavyweight for other use cases, while mobile focuses on ensuring APIs are safe for linking, which removes unused code to reduce application footprint.

Eine der wichtigsten Auswirkungen dieser unterschiedlichen Ziel-Frameworks ist, dass alle Assemblys in einem bestimmten Programm kompatible BCL-Assemblys als Ziel haben müssen .One of the more important repercussions of these different Target Frameworks, is that all of the assemblies in a given program must target compatible BCL assemblies. Wenn dies nicht der Fall ist, können Sie über zwei Assemblys verfügen, die mit verschiedenen Versionen der System. dll verknüpft sind, um die Signatur eines bestimmten Typs zu überschreiben.If this was not the case, you could have two assemblies linked against different versions of the System.dll disagreeing about the signature of a given type. Eine freigegebene Bibliothek kann entweder .NET Standard 2, d. h. die gemeinsame Teilmenge der Ziel-Frameworks, oder ein bestimmtes Ziel Framework als Ziel haben.A shared library can either target .NET Standard 2, which is the common subset of the Target Frameworks, or a specific target framework.

Für xamarin. Mac stehen drei Ziel Framework-Optionen zur Verfügung, die jeweils unterschiedliche Vorteile und Nachteile bieten:There are three Target Framework options available for Xamarin.Mac, each with different advantages and tradeoffs:

  • Modern (in älterer Dokumentation als "Mobile" bezeichnet) – eine sehr ähnliche Teilmenge für die Funktionsweise von xamarin. IOS, hochoptimiert für die Leistung und die Größe.Modern (called Mobile in older documentation) – A very similar subset to what powers Xamarin.iOS, highly tuned for performance and size. Dieses Ziel Framework ist Linker sicher. Daher können diese Projekte durch Entfernen von nicht verwendetem Code drastisch reduziert werden.This Target Framework is linker safe, so these projects can have their final footprint drastically reduced by removing unused code.

  • Full (in älterer Dokumentation als XM 4,5 bezeichnet) – eine sehr ähnliche Teilmenge auf die "Desktop"-BCL mit einigen kleinen Entfernungen.Full (called XM 4.5 in older documentation) – A very similar subset to the “desktop” BCL, with a few small removals. Da das Ziel Framework fast mit net45 (und höher) identisch ist, kann es problemlos viele nuget verarbeiten, die weder netstandard2 noch bestimmte xamarin. Mac-Builds bereitstellen.As the Target Framework is almost identical to net45 (and later), it can easily consume many nugets that do not provide either netstandard2 or specific Xamarin.Mac builds. Aufgrund der Verwendung von System. Configuration ist Sie jedoch nicht mit dem Verknüpfen kompatibel.However, due to System.Configuration usage it is incompatible with linking.

  • Nicht unterstützt (wird in der älteren Dokumentation als System bezeichnet) – verwenden Sie das aktuell installierte System Mono, anstatt eine Verknüpfung mit einer von xamarin. Mac bereitgestellten BCL zu verwenden.Unsupported (called System in older documentation) – Instead of linking to a BCL provided by Xamarin.Mac, use the current system installed mono. Dies bietet den vollständigsten Satz von Assemblys, einschließlich einiger bekanntermaßen problematisch (z. b. System. Drawing).This provides the fullest set of assemblies, including some known to be problematic (System.Drawing for example). Diese Option ist bereits vorhanden und wird dringend empfohlen, andere Optionen zu debugden, bevor Sie Sie verwenden.This option exists only has a “last resort” and it is strongly suggested to exhaust other options before using it. Wie der Name schon sagt, wird die Verwendung durch offizielle Support Kanäle nicht unterstützt.As the name implies, usage is unsupported by official support channels.

Festlegen des Ziel FrameworksSetting the target framework

Gehen Sie folgendermaßen vor, um zum Ziel Framework-Typ für ein xamarin. Mac-Projekt zu wechseln:To change to the Target Framework type for a Xamarin.Mac project, do the following:

  1. Öffnen Sie das Xamarin.Mac-Projekt in Visual Studio für Mac.Open the Xamarin.Mac project in Visual Studio for Mac.

  2. Doppelklicken Sie auf die Projektdatei im Projektmappen-Explorer, um die Projektoptionen zu öffnen.In the Solution Explorer, double-click the project file to open the Project Options dialog box.

  3. Wählen Sie auf der Registerkarte Allgemein den Typ des Ziel Frameworks aus, das den Anforderungen Ihrer Anwendung entspricht:From the General tab, select the type of Target Framework that suits your application's needs:

    ![Verwenden des Fensters "Projektoptionen" zum Auswählen eines Ziel Frameworks](target-framework-images/select-target-full.png "Verwenden des Fensters "Projektoptionen" zum Auswählen eines Ziel Frameworks")Using the Project Options window to choose a target framework

  4. Klicken Sie auf OK, um die Änderungen zu speichern.Click the OK button to save your changes.

Sie sollten das xamarin. Mac-Projekt nach dem Wechsel des zielframeworktyps Bereinigen und anschließend neu erstellen .You should Clean and then Rebuild your Xamarin.Mac project after switching the Target Framework type.

ZusammenfassungSummary

In diesem Artikel wurden die verschiedenen Typen von Ziel-Frameworks (Basisklassen Bibliotheken), die für eine xamarin. Mac-Anwendung verfügbar sind, und die einzelnen Frameworktypen, die verwendet werden sollten, kurz behandelt.This article has briefly covered the different types of Target Frameworks (Base Class Libraries) available to a Xamarin.Mac application and when each type of framework should be used.