Now liveThe Skillselion MCP - thousands of ranked skills, loaded into your agent mid-task. No install.Get it →
rysweet avatar

Dotnet10 Pack Tool

  • 122 installs
  • 70 repo stars
  • Updated July 26, 2026
  • rysweet/amplihack

Package and publish .NET 10 libraries or tools from amplihack with correct manifests, versioning, and NuGet-ready outputs for downstream consumers.

About

The dotnet10-pack-tool skill automates .NET 10 packaging for amplihack—metadata, versioning, and NuGet-ready outputs—so libraries and CLI tools can be published reliably. It targets integration work where correct package manifests and repeatable pack pipelines prevent broken downstream installs.

  • Builds NuGet-ready .NET 10 packages
  • Manages versioning and package metadata
  • Validates manifest and dependency declarations
  • Prepares libraries for internal or public feeds
  • Automates repeatable pack-and-publish steps

Dotnet10 Pack Tool by the numbers

  • 122 all-time installs (skills.sh)
  • +1 installs in the week ending Jul 26, 2026 (Skillselion tracking)
  • Ranked #76 of 153 .NET & C# skills by installs in the Skillselion catalog
  • Data as of Aug 2, 2026 (Skillselion catalog sync)
npx skills add https://github.com/rysweet/amplihack --skill dotnet10-pack-tool

Add your badge

Show developers this skill is listed on Skillselion. Paste this into your README.

Listed on Skillselion
Installs122
repo stars70
Last updatedJuly 26, 2026
Repositoryrysweet/amplihack

What it does

Package and publish .NET 10 libraries or tools from amplihack with correct manifests, versioning, and NuGet-ready outputs for downstream consumers.

Files

SKILL.mdMarkdownGitHub ↗

.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

1. Configure your .csproj with ToolPackageRuntimeIdentifiers and PublishAot=true 2. Generate the pointer package (metapackage) 3. Build Native AOT packages for each target RID 4. Create CoreCLR fallback with -r any 5. 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>

    <!-- Package as .NET Tool -->
    <PackAsTool>true</PackAsTool>
    <ToolCommandName>your-tool-name</ToolCommandName>

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

    <!-- Enable Native AOT -->
    <PublishAot>true</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

ConceptDescription
Pointer PackageMetapackage that references RID-specific packages
ToolPackageRuntimeIdentifiersLists 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

Related skills

.NET & C#backenddevops

This week in AI coding

Five minutes, every Monday - the tools, releases and tactics for developers.

unsubscribe anytime.