Application Trimming

Eintrag zuletzt aktualisiert am: 20.11.2023

Application Trimming ist eine Technik zum Tree Shaking in .NET. Dies geschiet bei dotnet publish durch den Assembly Linking (IL Linker).
  • Basiert auf statischer Code-Analyse!
  • Gefahr: Reflection und dynamische Codegenerierung wird nicht erfasst
  • Konfiguration zusätzliche Teile, die nicht entfernt werden dürfen, durch XML-Datei oder Annotationen
  • dotnet publish mit Trimming dauert sehr lange!
  • nicht für WPF und WinForms

Application Trimming in .NET Core 3.0

  • Entfernen ungenutzter Assemblies, nicht einzelner Codezeilen
  • Einstellung in Projektdatei: <PublishTrimmed>true</PublishTrimmed> <TrimMode>copyused</TrimMode>

Application Trimming in .NET 5.0

  • Das Application Trimming, bei dem der IL Linker bisher nur ganze ungenutzte DLLs entfernte, kann nun bis auf die Ebene von einzelnen Klassenmitgliedern herunter aussortieren. Diesen Trim Mode nennt Microsoft "Link" im Gegensatz zu dem "copyused" aus .NET Core 3.x, der weiterhin vorhanden und auch weiterhin der Standard ist.
  • Einstellung in Projektdatei: <PublishTrimmed>true</PublishTrimmed> <TrimMode>Link</TrimMode>

Application Trimming in .NET 6.0

  • Modus "Link" (Trimming auf Klassen- und Mitgliedsebene) nun Standard
  • In .NET 5 war "Link" noch optional (dort im Standard Trimming nur auf Assemblyebene)

Application Trimming in .NET 7.0