Ab sofort beherrscht Avalonia HotReload. Ein lange erwartetes Feature, das extrem viel Zeit spart. Dieser Beitrag zeigt Dir wie du HotReload in dein Avalonia Projekt integrieren und unter JetBrains Rider nutzen kann. Los geht’s!
Was ist Avalonia HotReload?
Hotreload überträgt Änderungen an .axaml– und .cs-Dateien direkt in eine laufende Anwendung, ohne dass ein Neustart nötig ist. Einfach speichern, und die betroffenen Controls, Styles, Ressourcen und Datenvorlagen werden an Ort und Stelle neu aufgebaut. Das Feature ist ab sofort allgemein verfügbar – für Windows, macOS, Linux, iOS und Android.
Wie HotReload funktioniert
Du musst dir keinen weiteren proprietären TCP-Stack einrichten oder ein zusätzliches Tool installieren – Avalonia HotReload baut auf .NET HotReload selbst auf, in das Microsoft für .NET MAUI ohnehin schon viel investiert hat, unter anderem mit Android- und iOS-Unterstützung ab .NET 11. Davon profitierst du einfach mit, ohne dafür extra etwas einrichten zu müssen. Für dich bedeutet das: ein Tool weniger, um das du dich kümmern musst.
Wenn du eine .axaml-Datei speicherst, siehst du die Änderung fast augenblicklich in der laufenden App – ohne Neustart, ohne Wartezeit. Auch Änderungen im C#-Code, etwa an einem ViewModel, wirken sich sofort aus, du musst nicht erst wieder zur betroffenen Ansicht navigieren.
Besonders angenehm:
Meistens wird nur das Element aktualisiert, das du tatsächlich bearbeitet hast. Der Zustand bleibt erhalten, der Rest der App bleibt unberührt – du verlierst also nicht ständig deinen aktuellen Arbeitskontext. In den Logs kannst du außerdem genau nachvollziehen, was bei jeder Änderung passiert ist.
Ganz ausgereift ist es aber noch nicht:
Bei manchen Änderungen bekommst du statt eines gezielten Updates noch einen vollständigen Reload des Elements zu sehen, wodurch dessen Zustand dann doch verloren geht. Trotzdem ein Feature das man nicht mehr missen mag.
Die Voraussetzungen für Avalonia HotReload
Avalonia HotReload ist ein Avalonia Plus-Feature, d.h. es erfordert eine entsprechende Avalonia-Lizenz.
Folgende Dependencies müssen erfüllt sein:
.NET 8.0 – 10.0:
- Avalonia ≥ 12.0.1
- Avalonia.Markup.Xaml.Loader ≥ 12.0.1
- AvaloniaUI.Licensing ≥ 3.1.2
3 einfache Schritte: Integration von HotReload in dein Avalonia Projekt
Zur Integration von Avalonia HotReload in Jetbrains Rider gehst Du wie folgt vor:
1. Installation des Avalonia HotReload Package
Installiere AvaloniaUI.DiagnosticsSupport.HotReload über die NuGet Paketverwaltung:

2. Anpassen der Avalonia Projektdatei
In Deiner Projektdatei entfernst Du zuerst den von NuGet neu erstellen Eintrag für das AvaloniaUI.DiagnosticsSupport.HotReload Package:
|
1 |
<PackageReference Include="AvaloniaUI.DiagnosticsSupport.HotReload" Version="1.0.0" /> |
Dann fügst Du dein Eintrag mit dem folgenden Code gleich wieder hinzu und zwar so, daß die Lib nur im Debug-Modus geladen wird:
|
1 2 3 4 5 6 7 8 |
<ItemGroup Condition="'$(Configuration)' == 'Debug'"> <PackageReference Include="AvaloniaUI.DiagnosticsSupport.HotReload" Version="1.0.0" /> </ItemGroup> <PropertyGroup> <AvaloniaHotReloadEnableFileWatcher>true</AvaloniaHotReloadEnableFileWatcher> <AvaloniaHotReloadIncremental>true</AvaloniaHotReloadIncremental> </PropertyGroup> |
Die zusätzliche Property-Group bewirkt folgendes:
AvaloniaHotReloadEnableFileWatcher:
Aktiviert HotReloadAvaloniaHotReloadIncremental:
Änderungen werden beim HotReload inkrementell verarbeitet, d.h. der App-State bleibt weitgehend erhalten.
3. Avalonia Lizenz hinzufügen
Der folgende Abschnitt fügt deine Avalonia Lizenz hinzu:
|
1 2 3 |
<ItemGroup> <AvaloniaUILicenseKey Include="avln_off_key:v1:AQAAAC8B..." /> </ItemGroup> |
Dein Projekt ist nun startklar. Happy Hot-Reloading :-)