PackagingTools.Core.Mac
12.0.0
dotnet add package PackagingTools.Core.Mac --version 12.0.0
NuGet\Install-Package PackagingTools.Core.Mac -Version 12.0.0
<PackageReference Include="PackagingTools.Core.Mac" Version="12.0.0" />
<PackageVersion Include="PackagingTools.Core.Mac" Version="12.0.0" />
<PackageReference Include="PackagingTools.Core.Mac" />
paket add PackagingTools.Core.Mac --version 12.0.0
#r "nuget: PackagingTools.Core.Mac, 12.0.0"
#:package PackagingTools.Core.Mac@12.0.0
#addin nuget:?package=PackagingTools.Core.Mac&version=12.0.0
#tool nuget:?package=PackagingTools.Core.Mac&version=12.0.0
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.
NuGet Packages
Primary packages
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
- Install the .NET 10 SDK and platform tooling described in Developer Onboarding.
- Clone the repository and build the solution:
git clone https://github.com/wieslawsoltes/PackingingTools.git
cd PackingingTools
dotnet build PackagingTools.sln -c Release
- Run the integration suite:
dotnet test tests/PackagingTools.IntegrationTests/PackagingTools.IntegrationTests.csproj -c Release
- 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:
packexecutes packaging pipelines for the selected platform and formats.hostpreviews and applies Windows host integration metadata with diff-oriented output.identity loginacquires 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
CIbuilds and tests the solution on Linux, macOS, and Windows, then packs all NuGet packages on Ubuntu and uploads both.nupkgand.snupkgartifacts.Releaseruns the same validation on tag pushes matchingv*, packs all publishable projects with the tag version, pushes packages to NuGet.org whenNUGET_API_KEYis 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
- Published documentation site
- Solution architecture
- Windows packaging suite
- Configuration guide
- Plugin configuration
- Identity architecture
- Security and SBOM architecture
- Packaging roadmap
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 | Versions 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. |
-
net10.0
- Microsoft.Extensions.Logging.Abstractions (>= 8.0.1)
- PackagingTools.Core (>= 12.0.0)
NuGet packages (1)
Showing the top 1 NuGet packages that depend on PackagingTools.Core.Mac:
| Package | Downloads |
|---|---|
|
PackagingTools.Sdk
.NET SDK client surface for orchestrating PackagingTools pipelines inside custom automation. |
GitHub repositories
This package is not used by any popular GitHub repositories.
| Version | Downloads | Last Updated |
|---|---|---|
| 12.0.0 | 110 | 4/30/2026 |
| 0.1.0-alpha.1 | 72 | 3/10/2026 |