dotnet10-pack-tool

.NET 10 Hybrid Pack Tool

Safety Notice

This listing is imported from skills.sh public index metadata. Review upstream SKILL.md and repository scripts before running.

Copy this and send it to your AI assistant to learn

Install skill "dotnet10-pack-tool" with this command: npx skills add rysweet/amplihack/rysweet-amplihack-dotnet10-pack-tool

.NET 10 Hybrid Pack Tool

Purpose

Guides you through creating hybrid .NET 10 tool packages that combine Native AOT for maximum performance on select platforms with CoreCLR fallback for universal compatibility.

When I Activate

I automatically load when you mention:

  • "pack .NET tool" or "dotnet pack AOT"

  • "Native AOT tool" or "hybrid .NET tool"

  • "ToolPackageRuntimeIdentifiers"

  • ".NET 10 tool packaging"

  • "cross-platform .NET tool with AOT"

What I Do

  • Configure your .csproj with ToolPackageRuntimeIdentifiers and PublishAot=true

  • Generate the pointer package (metapackage)

  • Build Native AOT packages for each target RID

  • Create CoreCLR fallback with -r any

  • Validate package structure

Quick Start

Step 1: Configure .csproj

<Project Sdk="Microsoft.NET.Sdk"> <PropertyGroup> <OutputType>Exe</OutputType> <TargetFramework>net10.0</TargetFramework> <ImplicitUsings>enable</ImplicitUsings>

&#x3C;!-- Package as .NET Tool -->
&#x3C;PackAsTool>true&#x3C;/PackAsTool>
&#x3C;ToolCommandName>your-tool-name&#x3C;/ToolCommandName>

&#x3C;!-- RIDs: CoreCLR fallback + Native AOT targets -->
&#x3C;ToolPackageRuntimeIdentifiers>any;osx-arm64;linux-arm64;linux-x64&#x3C;/ToolPackageRuntimeIdentifiers>

&#x3C;!-- Enable Native AOT -->
&#x3C;PublishAot>true&#x3C;/PublishAot>

</PropertyGroup>

<!-- Native AOT optimizations --> <PropertyGroup Condition="'$(PublishAot)' == 'true'"> <InvariantGlobalization>true</InvariantGlobalization> <OptimizationPreference>Size</OptimizationPreference> <StripSymbols>true</StripSymbols> </PropertyGroup> </Project>

Step 2: Build Packages

1. Create pointer package (no binaries, just metadata)

dotnet pack -o ./packages

2. Build Native AOT for each target platform

dotnet pack -r osx-arm64 -o ./packages # On macOS dotnet pack -r linux-arm64 -o ./packages # On Linux ARM or container dotnet pack -r linux-x64 -o ./packages # On Linux x64 or container

3. Create CoreCLR fallback for all other platforms

dotnet pack -r any -p:PublishAot=false -o ./packages

Step 3: Install & Run

dotnet tool install -g your-tool-name your-tool-name # Auto-selects best package for platform

Key Concepts

Concept Description

Pointer Package Metapackage that references RID-specific packages

ToolPackageRuntimeIdentifiers Lists RIDs, creates pointer structure (no auto-build)

-r any

CoreCLR fallback for unlisted platforms

-p:PublishAot=false

Disables AOT for CoreCLR fallback

Why This Pattern Works

  • PublishAot=true disables automatic RID package generation (AOT can't cross-compile OSes)

  • ToolPackageRuntimeIdentifiers creates the pointer package structure

  • Manual -r <RID> builds produce AOT binaries per platform

  • -r any -p:PublishAot=false creates portable CoreCLR fallback

Documentation

  • reference.md: Complete build script, container builds, CI/CD patterns

  • examples.md: Real-world examples and troubleshooting

Requirements

  • .NET 10 SDK installed

  • Docker (for cross-platform Linux builds from macOS/Windows)

  • AOT-compatible container: mcr.microsoft.com/dotnet/sdk:10.0-noble-aot

Source Transparency

This detail page is rendered from real SKILL.md content. Trust labels are metadata-based hints, not a safety guarantee.

Related Skills

Related by shared tags or category signals.

General

pptx

No summary provided by upstream source.

Repository SourceNeeds Review
General

lawyer-analyst

No summary provided by upstream source.

Repository SourceNeeds Review
General

economist-analyst

No summary provided by upstream source.

Repository SourceNeeds Review
General

mermaid-diagram-generator

No summary provided by upstream source.

Repository SourceNeeds Review