WPF Application Publishing Guide
When publishing WPF applications, ask the user about deployment and installer preferences.
Ask User: Deployment Method
Which deployment method do you need?
-
Framework-Dependent - Small size (~1MB), requires .NET runtime
-
Self-Contained - Includes runtime (150-200MB), no dependencies
-
Single-File - One executable (50-80MB compressed)
Ask User: Installer Technology
Which installer/update technology do you prefer?
-
Velopack (Recommended) - Modern, fast updates, delta updates
-
MSIX - Windows Store, enterprise deployment
-
NSIS - Traditional installer, full control
-
Inno Setup - Simple, widely used
-
None - Portable/xcopy deployment
Quick Reference
Deployment Methods
Method Size Startup Requirements
Framework-Dependent ~1MB Fast .NET runtime
Self-Contained 150-200MB Fast None
Single-File 150-200MB Medium None
Single-File + Compressed 50-80MB Slower None
Installer Technologies
Technology Auto-Update Delta Updates Store Complexity
Velopack ✅ ✅ ❌ Low
MSIX ✅ ✅ ✅ Medium
NSIS Manual ❌ ❌ High
Inno Setup Manual ❌ ❌ Medium
WPF Limitations
⚠️ PublishTrimmed: Not supported (reflection-heavy) ⚠️ PublishAot: Not supported (WPF incompatible)
Basic Commands
Framework-Dependent
dotnet publish -c Release
Self-Contained
dotnet publish -c Release -r win-x64 --self-contained true
Single-File (WPF)
dotnet publish -c Release -r win-x64 --self-contained true
-p:PublishSingleFile=true
-p:IncludeNativeLibrariesForSelfExtract=true
Additional Resources
-
WPF Single-File: See WPF-SINGLE-FILE.md
-
Size Optimization: See SIZE-OPTIMIZATION.md
-
Installer Options: See INSTALLERS.md