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.