Click here for the English article.
Einleitung
Mit List & Label 31 wurden die Cross-Platform-Samples schrittweise auf Avalonia umgestellt. Dieser Artikel zeigt, wie Sie die Samples unter Windows bearbeiten und anschließend für macOS oder Linux veröffentlichen und ausführen.
Was ist Avalonia?
Avalonia ist ein plattformübergreifendes UI-Framework für .NET. Damit lassen sich Desktop-Anwendungen mit einer gemeinsamen Codebasis für Windows, macOS und Linux entwickeln.
Kurz zusammengefasst:
-
XAML-basiert und in vielen Bereichen mit WPF vergleichbar
-
Plattformübergreifend für Windows, macOS und Linux
-
Basiert auf .NET
-
Open-Source unter der MIT-Lizenz
-
Unterstützt das MVVM-Architekturmuster
-
Nutzt Hardwarebeschleunigung für das UI-Rendering
Voraussetzungen
Für die folgenden Schritte benötigen Sie:
-
Visual Studio unter Windows
-
das gewünschte List & Label Cross Platform Sample
-
Zugriff auf ein macOS- oder ein Linux-System für die Ausführung
-
die zum Sample gehörenden Projektdateien, Berichtsvorlagen und Datenbanken
Avalonia in Visual Studio verwenden
Die Samples können unter Windows wie gewohnt in Visual Studio geöffnet, kompiliert und ausgeführt werden.
Damit Sie die Benutzeroberfläche direkt in Visual Studio bearbeiten und als Vorschau anzeigen können, installieren Sie die Erweiterung Avalonia for Visual Studio über Extensions > Manage Extensions.
Anschließend steht eine Live-Vorschau zur Verfügung, in der Änderungen an der XAML-Oberfläche direkt sichtbar werden.
Sample für macOS oder Linux veröffentlichen
Damit ein Sample unter macOS oder Linux ausgeführt werden kann, muss es für die jeweilige Zielplattform veröffentlicht werden.
Öffnen Sie im Projekt in Visual Studio eine Developer-PowerShell über Tools > Command Line > Developer PowerShell.
macOS auf Apple Silicon
Für aktuelle Macs mit Apple-Silicon-Prozessor verwenden Sie folgenden Befehl:
dotnet publish -c Release -r osx-arm64 --self-contained true /p:PublishSingleFile=true
Linux auf x64-Systemen
Für ein Linux-System mit x64-Architektur verwenden Sie:
dotnet publish -c Release -r linux-x64 --self-contained true /p:PublishSingleFile=true
Bedeutung der Parameter
| Parameter | Bedeutung |
|---|---|
| -c Release | Erstellt das Projekt in der Release-Konfiguration. |
| -r osx-arm64 | Veröffentlicht die Anwendung für macOS auf Apple Silicon. |
| -r linux-x64 | Veröffentlicht die Anwendung für Linux auf x64-Systemen. |
| –self-contained true | Liefert die benötigte .NET-Runtime mit. Auf dem Zielsystem muss .NET nicht separat installiert sein. |
| /p:PublishSingleFile=true | Erstellt eine einzelne ausführbare Datei. |
Die veröffentlichten Dateien finden Sie je nach Zielplattform in einem der folgenden Verzeichnisse:
bin\Release\net8.0\osx-arm64\publish
bin\Release\net8.0\linux-x64\publish
Hinweis: Das im Projekt verwendete .NET-Zielframework kann sich je nach Sample und List & Label-Version unterscheiden. Passen Sie den Verzeichnispfad gegebenenfalls entsprechend an.
Anwendung auf dem Zielsystem ausführen
Kopieren Sie den vollständigen Inhalt des Publish-Verzeichnisses auf den Mac beziehungsweise das Linux-System.
Stellen Sie sicher, dass auch alle vom Sample benötigten Ressourcen vorhanden und die verwendeten Pfade korrekt sind. Dazu können insbesondere gehören:
-
Berichtsvorlagen und Projektdateien, beispielsweise
*.json -
Datenbanken, beispielsweise
*.db -
weitere Dateien, auf die das Sample zur Laufzeit zugreift
Die ausführbare Datei besitzt keine Dateiendung. Beim Simple DOM Sample heißt sie beispielsweise DOMSimple.
Zusätzlicher Schritt unter Linux
Unter Linux muss die Datei gegebenenfalls zunächst als ausführbar markiert werden.
Öffnen Sie das Anwendungsverzeichnis im Terminal, beispielsweise über Rechtsklick > Im Terminal öffnen.
Erteilen Sie der Datei die Ausführungsberechtigung:
chmod +x DOMSimple
Starten Sie die Anwendung per Doppelklick oder im Terminal:
./DOMSimple
Ergebnis
Das Simple DOM Sample ist bereits aus der klassischen WinForms-Version bekannt:
Die Avalonia-Version stellt dieselbe Sample-Anwendung plattformübergreifend bereit. Die folgende Abbildung zeigt sie unter Ubuntu, macOS und Windows:
Nun können Sie die Cross-Platform-Samples unter Windows entwickeln und anschließend als eigenständige Anwendung für macOS oder Linux veröffentlichen.








