ReadyToRun Images (R2R)

Eintrag zuletzt aktualisiert am: 15.04.2026

Ein ReadyToRun Image ist eine Form von Ahead-of-time-Kompilierung (AOT) seit .NET Core 3.0.
  • Basiert auf CrossGen (Zweite Generation AOT nach NGEN)
  • Ein ReadyToRun Image enthält Microsoft Intermediate Language (MIL) und Native Code!
  • Sie sind sind daher größer!
  • Anwendungen starten schneller!
  • IL wird in einigen Szenarien noch gebraucht 
  • Nur mit Self-Contained Deployment!
  • Keine Cross-Kompilierung

Entwicklungsplattform -> Zielplattformen
Windows x64 -> Windows ARM32 + ARM64 + x86
Windows x86 -> Windows ARM32
Linux x64 -< Linux ARM32 + ARM64

Man aktiviert ein ReadyToRun Image mit Eintrag in der Projektdatei:
<PropertyGroup> <PublishReadyToRun>true</PublishReadyToRun> </PropertyGroup>

Alternativ kann man beim Kompilieren angeben:
dotnet publish -c Release -r win-x64 -p:PublishReadyToRun=true

Seit .NET 6.0 gibt es eine verbesserte Version Crossgen2:

dotnet publish -c Release -r win-x64 -p:PublishReadyToRun=true -p:ReadyToRunUseCrossgen2=true
  • Vorteil: bessere Optimierung über Assembly-Grenzen hinweg
  • Nachteil: längere Build-Zeit, größere Dateien

Die dritte Generation der AOT-Kompilierung für .NET ist Native AOT.