PackagingTools.Core 12.0.0

dotnet add package PackagingTools.Core --version 12.0.0
                    
NuGet\Install-Package PackagingTools.Core -Version 12.0.0
                    
This command is intended to be used within the Package Manager Console in Visual Studio, as it uses the NuGet module's version of Install-Package.
<PackageReference Include="PackagingTools.Core" Version="12.0.0" />
                    
For projects that support PackageReference, copy this XML node into the project file to reference the package.
<PackageVersion Include="PackagingTools.Core" Version="12.0.0" />
                    
Directory.Packages.props
<PackageReference Include="PackagingTools.Core" />
                    
Project file
For projects that support Central Package Management (CPM), copy this XML node into the solution Directory.Packages.props file to version the package.
paket add PackagingTools.Core --version 12.0.0
                    
#r "nuget: PackagingTools.Core, 12.0.0"
                    
#r directive can be used in F# Interactive and Polyglot Notebooks. Copy this into the interactive tool or source code of the script to reference the package.
#:package PackagingTools.Core@12.0.0
                    
#:package directive can be used in C# file-based apps starting in .NET 10 preview 4. Copy this into a .cs file before any lines of code to reference the package.
#addin nuget:?package=PackagingTools.Core&version=12.0.0
                    
Install as a Cake Addin
#tool nuget:?package=PackagingTools.Core&version=12.0.0
                    
Install as a Cake Tool

PackagingTools

Cross-platform .NET 10 packaging stack for building, signing, validating, and publishing Windows, macOS, and Linux application installers from a shared project model. PackagingTools combines an Avalonia desktop app, a .NET global tool, reusable SDK packages, and platform-specific engines so the same workflow can run locally or inside CI/CD.

.NET 10 Avalonia CI Docs License: MIT

NuGet Packages

Primary packages

Package NuGet Description
PackagingTools.Core NuGet Shared orchestration engine, project model, policy services, security primitives, audit, and telemetry
PackagingTools.Core.Windows NuGet Windows packaging providers for MSIX/MSI/App Installer flows, signing, and host integration
PackagingTools.Core.Mac NuGet macOS packaging providers for .app, .pkg, .dmg, notarization, and entitlement workflows
PackagingTools.Core.Linux NuGet Linux packaging providers for DEB/RPM/AppImage/Flatpak/Snap, repositories, SBOM, and vulnerability evidence
PackagingTools.Plugins NuGet Extensibility contracts and helpers for runtime-loaded format, signing, policy, and telemetry plugins
PackagingTools.Sdk NuGet High-level .NET client API for embedding PackagingTools orchestration into custom services and release systems
PackagingTools.Cli NuGet .NET global tool for packaging runs, host integration automation, policy validation, and scripted release flows

src/PackagingTools.App is the desktop host and is intentionally not published as a NuGet package.

Solution Components

Area Path / Package Responsibility
Desktop app src/PackagingTools.App Avalonia workspace for onboarding, project authoring, environment validation, dashboards, and operator workflows
CLI src/PackagingTools.Cli Scriptable entry point for package generation, validation, signing, and Windows host integration automation
Shared core src/PackagingTools.Core Common project model, orchestration pipeline, policy engine, secure storage, audit, and telemetry services
Platform engines src/PackagingTools.Core.Windows, src/PackagingTools.Core.Mac, src/PackagingTools.Core.Linux Platform-specific packaging providers, tool abstractions, signing integrations, and format-specific artifacts
SDK src/PackagingTools.Sdk Embeddable API surface centered on PackagingClient and PackagingRunOptions
Plugins src/PackagingTools.Plugins Extensibility contracts for external format providers, signing adapters, telemetry sinks, and enterprise integrations
Build and CI build/ Bootstrap scripts, tool checks, and reusable GitHub Actions starter templates
Docs docs/ Architecture, configuration schema, onboarding, CI, identity, security, and platform guidance
Samples and tests samples/, tests/ Reference project definitions plus integration coverage for Windows, macOS, Linux, plugins, policy, telemetry, and SDK scenarios

Supported Packaging Workflows

Platform Outputs Highlights
Windows MSIX, MSI, App Installer, WinGet manifests WiX 3.14 authoring (heat.exe, candle.exe, light.exe), signing via local certificates or Azure Key Vault/HSM, and host integration editing for shortcuts, protocols, shell extensions, tasks, and services
macOS .app, .pkg, .dmg Bundle materialization, signing, notarization, entitlement handling, provisioning assets, verification, and audit evidence capture
Linux DEB, RPM, AppImage, Flatpak, Snap Repository metadata publishing, container-oriented build scripts, sandbox profiles, SBOM generation, and vulnerability evidence gating

Features

  • Shared project schema with JSON configuration consumed consistently by the app, CLI, SDK, and plugins. The schema lives at docs/configuration/schema.json.
  • Policy-driven packaging through IPolicyEvaluator, allowing approval checks, signing requirements, SBOM rules, vulnerability thresholds, and retention constraints to block unsafe releases.
  • Identity-aware operations via pluggable identity services and secure stores for certificates, tokens, provisioning materials, and signing secrets.
  • Extensible packaging pipeline with plugin hooks for new formats, signing providers, telemetry sinks, vulnerability scanners, and organization-specific automation.
  • Operational telemetry and audit trails through the dashboard aggregation model, diagnostics bundles, packaging evidence, and verification results.
  • Local and CI parity so the same project definition, property model, and policy behavior apply on developer machines and in build pipelines.

Getting Started

  1. Install the .NET 10 SDK and platform tooling described in Developer Onboarding.
  2. Clone the repository and build the solution:
git clone https://github.com/wieslawsoltes/PackingingTools.git
cd PackingingTools
dotnet build PackagingTools.sln -c Release
  1. Run the integration suite:
dotnet test tests/PackagingTools.IntegrationTests/PackagingTools.IntegrationTests.csproj -c Release
  1. Produce NuGet artifacts locally:
dotnet pack PackagingTools.sln -c Release

Local packages are written to artifacts/nuget.

CLI Usage

During development you can run the CLI directly:

dotnet run --project src/PackagingTools.Cli -- pack \
  --project ./samples/sample-project.json \
  --platform windows \
  --format msix --format msi \
  --output ./artifacts/windows \
  --property windows.msix.payloadDirectory=./payload/win \
  --property windows.signing.certificatePath=certs/code-sign.pfx

After publishing, install the tool from NuGet:

dotnet tool install --global PackagingTools.Cli

Common commands:

  • pack executes packaging pipelines for the selected platform and formats.
  • host previews and applies Windows host integration metadata with diff-oriented output.
  • identity login acquires and stores credentials for identity-aware packaging flows.

SDK Usage

PackagingTools.Sdk exposes the same orchestration model to custom services and automation hosts:

using PackagingTools.Core.Models;
using PackagingTools.Sdk;

var client = PackagingClient.CreateDefault();

var run = new PackagingRunOptions("./projects/sample.json", PackagingPlatform.Windows)
{
    Configuration = "Release",
    OutputDirectory = "./artifacts/windows"
};

run.Formats.Add("msi");
run.Properties["windows.signing.azureKeyVaultCertificate"] = "contoso-signing-cert";

var result = await client.PackAsync(run);

See docs/sdk/embedding-packagingtools.md for advanced composition and host customization.

CI/CD and Release Flow

  • CI builds and tests the solution on Linux, macOS, and Windows, then packs all NuGet packages on Ubuntu and uploads both .nupkg and .snupkg artifacts.
  • Release runs the same validation on tag pushes matching v*, packs all publishable projects with the tag version, pushes packages to NuGet.org when NUGET_API_KEY is configured, and creates a GitHub release with generated release notes.
  • Reusable starter workflows for packaging jobs live under build/templates/github-actions/ and are documented in docs/ci/starter-templates.md.

Documentation

Repository Layout

PackingingTools/
├── src/                # App, CLI, SDK, core libraries, platform engines, plugin contracts
├── build/              # Bootstrap scripts, tool checks, CI templates
├── docs/               # Architecture, onboarding, CI, security, identity, platform guidance
├── samples/            # Sample project definitions and payload references
├── tests/              # Integration coverage and scenario validation
└── tools/              # Auxiliary utilities and diagnostics

Contributing

Use the onboarding guide to set up the toolchain, then run dotnet build, dotnet test, and dotnet pack before opening a pull request. When changing packaging behavior, update the relevant docs and add integration coverage under tests/PackagingTools.IntegrationTests.

Product Compatible and additional computed target framework versions.
.NET 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.

NuGet packages (5)

Showing the top 5 NuGet packages that depend on PackagingTools.Core:

Package Downloads
PackagingTools.Core.Windows

Windows packaging pipelines, signing integrations, and host integration tooling for PackagingTools.

PackagingTools.Core.Linux

Linux packaging pipelines with repository publishing, container build scripting, SBOM, and vulnerability integrations.

PackagingTools.Core.Mac

macOS packaging pipelines covering .app, .pkg, .dmg, notarization, and entitlement management.

PackagingTools.Sdk

.NET SDK client surface for orchestrating PackagingTools pipelines inside custom automation.

PackagingTools.Plugins

Plugin infrastructure and utilities for extending PackagingTools with custom providers.

GitHub repositories

This package is not used by any popular GitHub repositories.

Version Downloads Last Updated
12.0.0 143 4/30/2026
0.1.0-alpha.1 77 3/10/2026