A pure .NET tool and library for packaging .NET application publish output into native installers for Linux, Windows, and macOS.
DotnetPackaging is a .NET tool and library that converts the publish output of a .NET application into native, ready-to-distribute packages for Linux, Windows, and macOS. It solves the problem of juggling multiple platform-specific toolchains by providing a pure .NET solution that can generate installers like AppImage, DEB, RPM, MSIX, DMG, and EXE files from any operating system.
.NET developers and teams who need to distribute their applications as native installers across multiple platforms, especially those integrating packaging into CI/CD pipelines or building custom tooling.
Developers choose DotnetPackaging because it offers a unified, dependency-free .NET solution for multi-platform packaging, eliminating the complexity of native toolchains and providing both library and CLI interfaces for flexibility in automation and scripting.
Distribute your .NET applications!
Open-Awesome is built by the community, for the community. Submit a project, suggest an awesome list, or help improve the catalog on GitHub.
Generates AppImage, DEB, RPM, MSIX, DMG, and EXE installers from a single codebase, as highlighted in the README's key features, reducing toolchain fragmentation.
Pure .NET implementation allows packaging from any OS without platform-specific SDKs, eliminating the hunt for external toolchains mentioned in the philosophy.
Offers both NuGet libraries for CI/tool integration and a global CLI tool (dotnetpackager), providing scriptable and programmable workflows as described in the repository layout.
Automatically detects architecture, executables, and icons from publish directories while allowing full overrides, reducing manual configuration effort as shown in library examples.
MSIX, DMG, and EXE formats are labeled experimental or preview in the README, indicating potential instability, missing features, or breaking changes for production use.
Relies on the Zafiro library for filesystem abstractions, adding a learning curve and external dependency that might complicate debugging or customization.
Targets .NET 8 exclusively, forcing upgrades for older projects and limiting adoption in legacy environments without migration efforts.