One command from csproj to distributable: openmaui-appimage --project ./MyApp publishes your app, fetches the tooling, and produces a universal AppImage with a built-in installer — plus host-dependency checks, GPG signing, self-update support, and AppStream metadata when you want them.
dotnet tool install --global OpenMaui.AppImage && openmaui-appimage --project ./MyApp
openmaui-appimage --project ./MyApp runs dotnet publish itself, derives the name and version from your csproj, auto-detects the executable and icon, and downloads appimagetool on first use. No AppDir hand-crafting, no config files.
A single AppImage runs on virtually any distribution — no dependency conflicts, no root, no installation. Works in FUSE-less containers and CI out of the box, and can package existing .deb contents or FHS trees too.
First-run installer dialog with install, reinstall, and uninstall. Launcher entry with a right-click Uninstall action, icons, taskbar integration — and an optional launch-time check that tells end users exactly which host packages to install if something is missing.
Point at a csproj and get an AppImage: publish, asset detection (ELF or runtimeconfig, MauiIcon compositing), AppDir, desktop file with correct StartupWMClass, and installer — in a single invocation. Two-step --input mode remains for custom publish flags.
Scans your app for OpenMaui feature packages and reports the host libraries each needs — GStreamer for MediaElement, libcups for printing, appindicator for tray, WPE WebKit for the WebView and BlazorWebView (required when the Blazor package is present) — with exact Fedora and Debian package names, including the Fedora COPR step WPE needs. Optionally bakes a friendly launch-time check into the AppImage.
Embed zsync update information with --update-info and shipped AppImages can update themselves via AppImageUpdate — binary-delta downloads, no reinstall.
GPG-sign releases with --sign, and generate AppStream metainfo with --metainfo for software-center listings — reverse-DNS app-id validation included.
Auto-detects missing /dev/fuse and switches appimagetool to extract-and-run; --no-fetch forbids network for locked-down runners. Also packages .deb contents and FHS trees (Tauri, Electron) via --appdir, and outputs Flatpak with --format flatpak.
A copy-paste-exact packaging guide ships in the repo — commands, options, recipes, verification steps, and troubleshooting — designed so an AI coding assistant working in your project can package your app correctly on the first try.
dotnet tool install --global OpenMaui.AppImage, then one command packages your app with installer, dependency checks, signing, and self-update. MIT licensed.
Install the ToolGetting Started with AppImage for .NET MAUI
General-purpose AppImage tooling is excellent at what it does — openmaui-appimage builds on appimagetool and specializes the whole workflow for .NET MAUI, so the .NET-specific steps disappear.
| openmaui-appimage | appimagetool (manual) | linuxdeploy | appimage-builder | |
|---|---|---|---|---|
| .NET workflow | ||||
| One command from csproj | Yes | - | - | - |
| Runs dotnet publish itself | Yes | - | - | - |
| Name/version derived from csproj | Yes | Manual | Manual | Recipe |
| Executable and MauiIcon auto-detection | Yes | Manual | Partial | Recipe |
| OpenMaui host-dependency report and launch check | Yes: GStreamer, CUPS, tray, WPE WebKit (WebView, Blazor), with distro package names and the Fedora COPR step | - | - | - |
| End-user experience | ||||
| Built-in installer dialog | Yes | - | - | - |
| Install / reinstall / uninstall flags | Yes | - | - | - |
| Right-click Uninstall launcher action | Yes | - | - | - |
| Desktop entry with correct StartupWMClass | Generated | Manual | Generated | Generated |
| Distribution and CI | ||||
| zsync self-update embedding | One flag | Manual flag | Env var | Recipe |
| GPG signing | One flag | Manual flag | Manual | Recipe |
| AppStream metainfo generation | Generated | Manual | Manual | Manual |
| FUSE-less containers/CI | Auto-detected | Manual flag | Manual | Yes |
| Tooling auto-fetch | Yes | - | - | - |
| .deb / FHS tree repackaging | Yes | Manual AppDir | Manual AppDir | Yes |
| Flatpak output | Yes | - | - | - |
| Guide written for AI assistants | Yes | - | - | - |