Single-File-Executable

Eintrag zuletzt aktualisiert am: 20.11.2023

Single-File-Executable ist ein Deploymentverfahren, das mit .NET Core 3.0 eingeführt wurde.
Alias: Single-File-Bundler, Alias Single-File-Publishing
  • Wahlweise ist darin enthalten nur der eigene Programmcode (Framework Dependend App) oder auch die notwendigen Teile der .NET-Laufzeitumgebung (Self Contained App)
  • Verlängert den Anwendungsstart etwas
  • Optionales Application Trimming (Tree Shaking)

Aktivierung

In Projektdatei: <PublishSingleFile>true</PublishSingleFile>
Per Parameter: dotnet publish -r win10-x64 /p:PublishSingleFile=true

Verbesserung seit .NET 5.0

Beim Single-File-Publishing wird seit .NET 5.0 das Archiv nicht mehr zu Beginn ausgepackt in C:\Users\xy\AppData\Local\Temp\.net\xy, sondern die Dateien sind direkt aus dem Archiv startbar. Allerdings funktioniert das unter Windows nicht so gut wie unter Linux und macOS. Während in letzteren wirklich nur eine ausführbare Datei entsteht, sieht man unter Windows eine größere EXE und doch mehrere kleinere DLLs. Diese nativen DLLs kann der Entwickler mit der Zusatzoption -p:IncludeNativeLibrariesForSelfExtract=true auch verpacken, wobei (wie der Optionsname schon sagt) diese dann beim ersten Start in ein Temp-Verzeichnis des Benutzers ausgepackt werden.