|
1 | 1 | # DotnetPackaging |
2 | 2 |
|
3 | | -DotnetPackaging helps you turn the publish output of a .NET application into Linux-friendly deliverables. The repository produces two related artifacts: |
| 3 | +DotnetPackaging helps you turn the publish output of a .NET application into ready-to-ship deliverables for Linux, Windows and macOS. The repository produces two related artifacts: |
4 | 4 |
|
5 | | -- **NuGet libraries** (`DotnetPackaging`, `DotnetPackaging.AppImage`, `DotnetPackaging.Deb`) that expose the packaging primitives for tool authors and CI integrations. |
| 5 | +- **NuGet libraries** (`DotnetPackaging`, `DotnetPackaging.AppImage`, `DotnetPackaging.Deb`, `DotnetPackaging.Flatpak`, `DotnetPackaging.Msix`, `DotnetPackaging.Dmg`, `DotnetPackaging.Exe`) that expose packaging primitives for tool authors and CI integrations. |
6 | 6 | - **A global `dotnet` tool** (`dotnetpackager`) that wraps those libraries with a scriptable command line experience. |
7 | 7 |
|
8 | | -Both flavors share the same code paths, so whatever works in the CLI is also available from your own automation. |
| 8 | +Supported formats today: `.AppImage`, `.deb`, `.rpm`, `.flatpak`, `.msix` (experimental), `.dmg` (experimental) and a Windows self-extracting `.exe` (preview). |
| 9 | + |
| 10 | +Both flavors share the same code paths, so whatever works in the CLI is also available from your own automation. The best part? Everything is pure .NET with zero native dependencies, so you can crank out packages from whatever OS you’re using without hunting for platform-specific toolchains. |
| 11 | + |
| 12 | +## Why DotnetPackaging |
| 13 | + |
| 14 | +Shipping .NET apps shouldn’t require juggling half a dozen platform tools. DotnetPackaging keeps things friendly by giving you one toolbox to generate installers and bundles for the ecosystems your users actually run. No extra daemons, no native SDK rabbit holes—just run the CLI or the libraries, and your bits are ready to share. It’s a laid-back, developer-first way to make sure your app lands everywhere it needs to. |
9 | 15 |
|
10 | 16 | ## Repository layout |
11 | 17 | - `src/DotnetPackaging`: core abstractions such as metadata models, ELF inspection, icon discovery and option builders. |
@@ -125,14 +131,18 @@ dotnet tool install --global DotnetPackaging.Tool |
125 | 131 | ``` |
126 | 132 |
|
127 | 133 | ### Commands |
128 | | -- `dotnetpackager deb` – build a Debian/Ubuntu `.deb` out of a publish directory. |
129 | 134 | - `dotnetpackager appimage` – build an `.AppImage` file directly from a publish directory. |
130 | 135 | - `dotnetpackager appimage appdir` – generate an AppDir folder structure for inspection/customisation. |
131 | 136 | - `dotnetpackager appimage from-appdir` – package an existing AppDir into an AppImage. |
| 137 | +- `dotnetpackager deb` – build a Debian/Ubuntu `.deb` out of a publish directory (and `deb from-project` to publish + package in one step). |
| 138 | +- `dotnetpackager rpm` – build an RPM from a publish directory (`rpm from-project` also available) without owning system dirs. |
132 | 139 | - `dotnetpackager flatpak layout` – create a Flatpak layout (metadata + files/) from a publish directory. |
133 | 140 | - `dotnetpackager flatpak bundle` – create a `.flatpak` (uses system `flatpak` by default; `--system` to force system; internal fallback). |
134 | 141 | - `dotnetpackager flatpak repo` – generate an OSTree repo directory (debug/validation). |
135 | 142 | - `dotnetpackager flatpak pack` – minimal UX: only `--directory` and `--output-dir`; auto-named output and sensible defaults. |
| 143 | +- `dotnetpackager msix` – experimental MSIX packing from a directory (`msix from-project` when you want it published for you). |
| 144 | +- `dotnetpackager dmg` – experimental macOS `.dmg` builder from a publish directory (`dmg from-project` to publish + package). |
| 145 | +- `dotnetpackager exe` – preview Windows self-extracting installer builder; supports `exe from-project` and stub auto-download. |
136 | 146 |
|
137 | 147 | Run `dotnetpackager <command> --help` to see the full list of shared options (`--application-name`, `--comment`, `--homepage`, `--keywords`, `--icon`, `--is-terminal`, etc.). |
138 | 148 |
|
|
0 commit comments