Freigeben über


XAML-Kompilierung

.NET Multi-platform App UI (.NET MAUI) XAML wird mit dem XAML-Compiler (XAMLC) direkt in Intermediate Language (IL) kompiliert. Die XAML-Kompilierung bietet eine Reihe von Vorteilen:

  • Sie führt eine Kompilierzeitprüfung von XAML durch und benachrichtigt Sie über etwaige Fehler.
  • Er entfernt etwas Lade- und Instanziierungszeit für XAML-Elemente.
  • Er hilft bei der Verringerung der Dateigröße der finalen Assembly, indem XAML-Dateien nicht mehr eingeschlossen werden.

Die XAML-Kompilierung ist in .NET MAUI-Apps standardmäßig aktiviert. Für Apps, die mit der Debugkonfiguration erstellt wurden, stellt die XAML-Kompilierung eine Kompilierungszeitüberprüfung von XAML bereit, konvertiert jedoch nicht den XAML-Code in die Il-Datei in der Assembly. Stattdessen werden XAML-Dateien als eingebettete Ressourcen im App-Paket enthalten und zur Laufzeit ausgewertet. Für Apps, die mit der Releasekonfiguration erstellt wurden, stellt die XAML-Kompilierung die Kompilierungszeitüberprüfung von XAML bereit und konvertiert den XAML-Code in eine IL, die in die Assembly geschrieben wurde. Das XAML-Kompilierungsverhalten kann jedoch in beiden Konfigurationen mit der Klasse XamlCompilationAttribute außer Kraft gesetzt werden.

Wichtig

Kompilierte Bindungen können aktiviert werden, um die Leistung der Datenbindung in .NET MAUI-Anwendungen zu verbessern. Weitere Informationen finden Sie unter Kompilierte Bindungen.

XAML-Kompilierung deaktivieren

Die XAML-Kompilierung kann durch Übergabe von XamlCompilationOptions.Skip an die XamlCompilationAttribute deaktiviert werden:

[assembly: XamlCompilation(XamlCompilationOptions.Skip)]

In diesem Beispiel ist die XAML-Kompilierung innerhalb der Assembly deaktiviert, wobei XAML-Fehler zur Laufzeit gemeldet werden und nicht kompiliert werden.

Die XAML-Kompilierung kann auch auf Typebene deaktiviert werden:

[XamlCompilation (XamlCompilationOptions.Skip)]
public partial class MyPage : ContentPage
{
    ...
}

In diesem Beispiel ist die XAML-Kompilierung nur für die MyPage-Klasse deaktiviert.

Warnung

Das Deaktivieren der XAML-Kompilierung wird nicht empfohlen, da XAML dann zur Laufzeit analysiert und interpretiert wird, wodurch die App-Leistung reduziert wird.

XAML-Kompilierung aktivieren

Da die XAML-Kompilierung in .NET MAUI-Anwendungen standardmäßig aktiviert ist, wird durch Entfernen aller XamlCompilation(XamlCompilationOptions.Skip)-Anweisungen sichergestellt, dass die XAML-Kompilierung aktiviert ist.

Alternativ kann die XAML-Kompilierung zwangsweise aktiviert werden, indem XamlCompilationOptions.Compile an die XamlCompilationAttribute übergeben wird:

[assembly: XamlCompilation(XamlCompilationOptions.Compile)]

In diesem Beispiel wird die XAML-Kompilierung für alle in der Assembly enthaltenen XAML-Dateien aktiviert, wobei XAML-Fehler zur Kompilierungszeit und nicht zur Laufzeit gemeldet werden.

Die XAML-Kompilierung kann auch auf Typebene aktiviert werden:

[XamlCompilation (XamlCompilationOptions.Compile)]
public partial class MyPage : ContentPage
{
    ...
}

In diesem Beispiel ist die XAML-Kompilierung nur für die MyPage-Klasse aktiviert.