Netloy 1.2.0

dotnet tool install --global Netloy --version 1.2.0
                    
This package contains a .NET tool you can call from the shell/command line.
dotnet new tool-manifest
                    
if you are setting up this repo
dotnet tool install --local Netloy --version 1.2.0
                    
This package contains a .NET tool you can call from the shell/command line.
#tool dotnet:?package=Netloy&version=1.2.0
                    
nuke :add-package Netloy --version 1.2.0
                    

<img src="assets/netloy.1024x1024.png" alt="Netloy Logo" width="200"/>

๐Ÿš€ Netloy

Cross-Platform .NET Application Packaging Tool

License .NET NuGet Version NuGet Downloads GitHub Release

Build once, deploy everywhere

Features โ€ข Installation โ€ข Quick Start โ€ข Documentation โ€ข Changelog โ€ข Contributing


๐Ÿ“– What is Netloy?

Netloy is a powerful command-line tool that automates the packaging and deployment of .NET applications across multiple platforms and formats. With a single configuration file, create professional installers and packages for Windows, Linux, and macOS without platform-specific expertise.

Say goodbye to complex build scripts and manual packaging. Netloy handles icon generation, desktop integration, AppStream metadata, and platform-specific requirements automatically.


โœจ Features

๐ŸŽฏ Multi-Platform Support

  • Windows: EXE (Inno Setup), MSI (WiX v3)
  • Linux: DEB, RPM, AppImage, Flatpak, Pacman
  • macOS: APP Bundle, DMG
  • Portable: Cross-platform ZIP/TAR.GZ archives

โš™๏ธ Powerful Configuration

  • Single .netloy configuration file for all platforms
  • Macro system for dynamic templating (${APP_VERSION}, ${PUBLISH_OUTPUT_DIRECTORY}, etc.)
  • Post-publish scripts (Bash, PowerShell, Batch)
  • Configuration upgrade tool for version compatibility

๐ŸŽจ Automated Asset Management

  • Icon generation: Provide one PNG (1024ร—1024), get all required sizes automatically
  • Multi-format icon support: PNG, SVG, ICO, ICNS
  • AppStream metadata generation for Linux software centers

๐Ÿ–ฅ๏ธ Desktop Integration

  • Desktop shortcuts and Start Menu entries
  • File associations and context menu integration
  • Terminal command support (StartCommand)
  • Platform-specific category mapping

๐Ÿ”ง Build Flexibility

  • Supports both .NET Core and .NET Framework
  • Custom dotnet publish arguments
  • Direct binary packaging (skip build, use existing binaries)
  • Clean build artifacts automatically

๐Ÿ“ฆ Installation

Prerequisites

Install via .NET Tool

dotnet tool install --global Netloy

Verify Installation

netloy --version

๐Ÿš€ Quick Start

1. Create a Configuration File

Navigate to your .NET project directory and create a new configuration:

netloy --new conf

This generates a .netloy file with default settings. Edit it to customize your application metadata, packaging options, and platform-specific settings.

2. Build Your Package

Windows Installer (MSI)
netloy -t msi -r win-x64 --config-path MyApp.netloy
Linux DEB Package
netloy -t deb -r linux-x64 --config-path MyApp.netloy
macOS DMG
netloy -t dmg -r osx-arm64 --config-path MyApp.netloy

3. Find Your Package

Built packages are saved to the output directory specified in your configuration or via -o flag.


๐Ÿ“‹ Supported Package Types

Platform Type Format Command Flag
Windows Installer EXE -t exe
Windows Installer MSI -t msi
Windows Portable ZIP -t portable
Linux Package DEB -t deb
Linux Package RPM -t rpm
Linux Package Pacman -t pacman
Linux AppImage AppImage -t appimage
Linux Flatpak Flatpak -t flatpak
Linux Portable TAR.GZ -t portable
macOS Bundle APP (zipped) -t app
macOS Installer DMG -t dmg
macOS Portable TAR.GZ -t portable

๐Ÿ› ๏ธ Configuration Example

Here's a minimal .netloy configuration:

App Preamble

AppBaseName = MyApp
AppFriendlyName = My Awesome App
AppId = com.example.myapp
AppVersionRelease = 1.0.0
AppShortSummary = A simple example application
AppDescription = """
This is a longer description of my application.
It supports multiple paragraphs.
"""
AppLicenseId = MIT

Publisher

PublisherName = Example Inc.
PublisherCopyright = Copyright ยฉ 2025 Example Inc.
PublisherLinkUrl = https://example.com
PublisherEmail = contact@example.com

Desktop Integration

DesktopTerminal = false
PrimeCategory = Utility
IconFiles = """
Deploy/icons/app-icon.1024x1024.png
Deploy/icons/app-icon.svg
Deploy/icons/app-icon.ico
Deploy/icons/app-icon.icns
"""
AutoGenerateIcons = true

.NET Publish

DotnetProjectPath = ./MyApp.csproj
DotnetPublishArgs = -p:Version=<APPVERSION> --self-contained true

Output

PackageName = myapp
OutputDirectory = ./output

๐Ÿ“š For complete configuration reference, see the Wiki.


๐Ÿงช Examples

Build with Custom Version

netloy -t msi -r win-x64 --app-version 2.1.0 --config-path MyApp.netloy

Build for ARM64 Architecture

netloy -t deb -r linux-arm64 --config-path MyApp.netloy --verbose

Skip Build (Use Existing Binaries)

netloy -t appimage -r linux-x64 --binary-path ./bin/Release/net8.0/linux-x64/publish

Create New Desktop File Template

netloy --new desktop

๐Ÿ“š Documentation


๐Ÿ“ Changelog

For a detailed list of changes, new features, and bug fixes in each version, see the CHANGELOG.md.


๐Ÿค Contributing

Contributions are welcome! Please read our Contributing Guide for details on our code of conduct and the process for submitting pull requests.

  1. Fork the repository
  2. Create your feature branch (git checkout -b feature/AmazingFeature)
  3. Commit your changes (git commit -m 'Add some AmazingFeature')
  4. Push to the branch (git push origin feature/AmazingFeature)
  5. Open a Pull Request

๐Ÿ“„ License

This project is licensed under the AGPL-3.0 License - see the LICENSE file for details.


๐Ÿ™ Acknowledgments

  • Inspired by PupNet Deploy, though Netloy is a complete rewrite from scratch with expanded features and cross-platform support
  • Inno Setup for Windows EXE installer generation
  • WiX Toolset for Windows MSI package creation
  • AppImage for portable Linux application format
  • Flatpak for sandboxed Linux application distribution

Made with โค๏ธ by Adel Bakhshi

โญ If Netloy helps your project, consider giving it a star!

Product Compatible and additional computed target framework versions.
.NET net8.0 is compatible.  net8.0-android was computed.  net8.0-browser was computed.  net8.0-ios was computed.  net8.0-maccatalyst was computed.  net8.0-macos was computed.  net8.0-tvos was computed.  net8.0-windows was computed.  net9.0 was computed.  net9.0-android was computed.  net9.0-browser was computed.  net9.0-ios was computed.  net9.0-maccatalyst was computed.  net9.0-macos was computed.  net9.0-tvos was computed.  net9.0-windows was computed.  net10.0 is compatible.  net10.0-android was computed.  net10.0-browser was computed.  net10.0-ios was computed.  net10.0-maccatalyst was computed.  net10.0-macos was computed.  net10.0-tvos was computed.  net10.0-windows was computed. 
Compatible target framework(s)
Included target framework(s) (in package)
Learn more about Target Frameworks and .NET Standard.

This package has no dependencies.

Version Downloads Last Updated
1.2.0 349 2/8/2026
1.1.0 142 1/1/2026
1.0.0 247 12/19/2025