mcpField
D
dotnet10-pack-tool

dotnet10-pack-tool

github.com/rysweet開発76129 回インストール21 週間前に更新
リポジトリ

dotnet10-pack-tool について

.NET 10 Hybrid Pack Toolは、Native AOTビルドとCoreCLRフォールバックを組み合わせた.NET 10ツールのパッケージ化を案内するスキルです。設定、プラットフォーム別ビルド、構成検証を扱います。

主な機能

  1. 01.csprojのパッケージ設定
  2. 02ポインターパッケージの生成
  3. 03RID別Native AOTビルド
  4. 04CoreCLRフォールバックのパッケージ化
  5. 05パッケージ構成の検証

活用シーン

  1. 01.NET 10コマンドラインツールのパッケージ化
  2. 02対象プラットフォーム向けAOTパッケージの作成
  3. 03未指定プラットフォーム向けフォールバックの提供

インストール

コマンドをコピーしてターミナルで実行します。

$npx skills add https://github.com/rysweet/amplihack --skill dotnet10-pack-tool

インストール後、Claude Code で/dotnet10-pack-toolを入力して読み込まれたか確認します。

同梱ファイルexamples.mdreference.md

詳細

.NET 10 ハイブリッドパックツール

目的

一部のプラットフォームでは最高のパフォーマンスを実現する Native AOT を使用し、すべてのプラットフォームでの互換性を確保するために CoreCLR にフォールバックする、ハイブリッド .NET 10 ツールパッケージの作成手順を説明します。

アクティブになる条件

次の内容に言及すると、自動的に読み込まれます。

  • 「.NET ツールをパック」または「dotnet pack AOT」
  • 「Native AOT ツール」または「ハイブリッド .NET ツール」
  • 「ToolPackageRuntimeIdentifiers」
  • 「.NET 10 ツールのパッケージ化」
  • 「AOT を使用するクロスプラットフォーム .NET ツール」

できること

  1. ToolPackageRuntimeIdentifiers と PublishAot=true を使用して .csproj を構成します
  2. ポインターパッケージ(メタパッケージ)を生成します
  3. 各ターゲット RID 用の Native AOT パッケージをビルドします
  4. -r any を使用して CoreCLR フォールバックを作成します
  5. パッケージの構造を検証します

クイックスタート

手順 1:.csproj を構成する
<Project Sdk="Microsoft.NET.Sdk">
  <PropertyGroup>
    <OutputType>Exe</OutputType>
    <TargetFramework>net10.0</TargetFramework>
    <ImplicitUsings>enable</ImplicitUsings>

    
    <PackAsTool>true</PackAsTool>
    <ToolCommandName>your-tool-name</ToolCommandName>

    
    <ToolPackageRuntimeIdentifiers>any;osx-arm64;linux-arm64;linux-x64</ToolPackageRuntimeIdentifiers>

    
    <PublishAot>true</PublishAot>
  </PropertyGroup>

  
  <PropertyGroup Condition="'$(PublishAot)' == 'true'">
    <InvariantGlobalization>true</InvariantGlobalization>
    <OptimizationPreference>Size</OptimizationPreference>
    <StripSymbols>true</StripSymbols>
  </PropertyGroup>
</Project>
手順 2:パッケージをビルドする
# 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
手順 3:インストールして実行する
dotnet tool install -g your-tool-name
your-tool-name  # Auto-selects best package for platform

主なコンセプト

コンセプト説明
ポインターパッケージRID 固有のパッケージを参照するメタパッケージ
ToolPackageRuntimeIdentifiersRID を列挙し、ポインター構造を作成します(自動ビルドは行いません)
-r anyリストにないプラットフォーム用の CoreCLR フォールバック
-p:PublishAot=falseCoreCLR フォールバック用に AOT を無効にします

このパターンが機能する理由

  • PublishAot=true により、RID パッケージの自動生成が無効になります(AOT では OS をまたいだクロスコンパイルができません)
  • ToolPackageRuntimeIdentifiers により、ポインターパッケージの構造が作成されます
  • -r <RID> を指定して手動でビルドすると、プラットフォームごとに AOT バイナリが生成されます
  • -r any -p:PublishAot=false により、移植可能な CoreCLR フォールバックが作成されます

ドキュメント

  • reference.md:完全なビルドスクリプト、コンテナビルド、CI/CD のパターン
  • examples.md:実例とトラブルシューティング

要件

  • .NET 10 SDK がインストールされていること
  • Docker(macOS/Windows からクロスプラットフォームの Linux ビルドを行う場合)
  • AOT 互換コンテナ:mcr.microsoft.com/dotnet/sdk:10.0-noble-aot

コメント