dotnet10-pack-tool by rysweet/amplihack
npx skills add https://github.com/rysweet/amplihack --skill dotnet10-pack-tool指导您创建混合 .NET 10 工具包,该工具包结合了 Native AOT 以在选定平台上实现最大性能,同时提供 CoreCLR 回退以实现普遍兼容性。
当您提及以下内容时,我会自动加载:
ToolPackageRuntimeIdentifiers 和 PublishAot=true 配置您的 .csproj 文件-r any 创建 CoreCLR 回退包<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
<OutputType>Exe</OutputType>
<TargetFramework>net10.0</TargetFramework>
<ImplicitUsings>enable</ImplicitUsings>
<!-- 打包为 .NET 工具 -->
<PackAsTool>true</PackAsTool>
<ToolCommandName>your-tool-name</ToolCommandName>
<!-- RID 列表:CoreCLR 回退 + Native AOT 目标平台 -->
<ToolPackageRuntimeIdentifiers>any;osx-arm64;linux-arm64;linux-x64</ToolPackageRuntimeIdentifiers>
<!-- 启用 Native AOT -->
<PublishAot>true</PublishAot>
</PropertyGroup>
<!-- Native AOT 优化设置 -->
<PropertyGroup Condition="'$(PublishAot)' == 'true'">
<InvariantGlobalization>true</InvariantGlobalization>
<OptimizationPreference>Size</OptimizationPreference>
<StripSymbols>true</StripSymbols>
</PropertyGroup>
</Project>
广告位招租
在这里展示您的产品或服务
触达数万 AI 开发者,精准高效
# 1. 创建指针包(无二进制文件,仅包含元数据)
dotnet pack -o ./packages
# 2. 为每个目标平台构建 Native AOT 包
dotnet pack -r osx-arm64 -o ./packages # 在 macOS 上
dotnet pack -r linux-arm64 -o ./packages # 在 Linux ARM 或容器中
dotnet pack -r linux-x64 -o ./packages # 在 Linux x64 或容器中
# 3. 为所有其他平台创建 CoreCLR 回退包
dotnet pack -r any -p:PublishAot=false -o ./packages
dotnet tool install -g your-tool-name
your-tool-name # 自动为当前平台选择最佳包
| 概念 | 描述 |
|---|---|
| 指针包 | 引用特定 RID 包的元包 |
| ToolPackageRuntimeIdentifiers | 列出 RID 列表,创建指针包结构(不自动构建) |
-r any | 为未列出的平台提供 CoreCLR 回退 |
-p:PublishAot=false | 为 CoreCLR 回退包禁用 AOT |
PublishAot=true 会禁用自动的 RID 包生成(AOT 无法跨操作系统交叉编译)ToolPackageRuntimeIdentifiers 创建指针包结构-r <RID> 构建会为每个平台生成 AOT 二进制文件-r any -p:PublishAot=false 创建可移植的 CoreCLR 回退包mcr.microsoft.com/dotnet/sdk:10.0-noble-aot每周安装次数
81
代码仓库
GitHub 星标数
43
首次出现
2026年1月26日
安全审计
安装于
opencode76
codex72
gemini-cli70
github-copilot70
cursor70
claude-code68
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.
I automatically load when you mention:
ToolPackageRuntimeIdentifiers and PublishAot=true-r any<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>
# 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
dotnet tool install -g your-tool-name
your-tool-name # Auto-selects best package for platform
| 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 |
PublishAot=true disables automatic RID package generation (AOT can't cross-compile OSes)ToolPackageRuntimeIdentifiers creates the pointer package structure-r <RID> builds produce AOT binaries per platform-r any -p:PublishAot=false creates portable CoreCLR fallbackmcr.microsoft.com/dotnet/sdk:10.0-noble-aotWeekly Installs
81
Repository
GitHub Stars
43
First Seen
Jan 26, 2026
Security Audits
Gen Agent Trust HubPassSocketPassSnykWarn
Installed on
opencode76
codex72
gemini-cli70
github-copilot70
cursor70
claude-code68
ESLint迁移到Oxlint完整指南:JavaScript/TypeScript项目性能优化工具
1,700 周安装