| name | dotnet-cli-distribution |
| category | operations |
| subcategory | ci-cd |
| description | Chooses CLI output format. AOT vs framework-dependent, RID matrix, single-file, dotnet tool. |
| license | MIT |
| targets | ["*"] |
| tags | ["csharp","dotnet","skill"] |
| version | 0.0.1 |
| author | dotnet-agent-harness |
| invocable | true |
| claudecode | {"allowed-tools":["Read","Grep","Glob","Bash","Write","Edit"]} |
| codexcli | {"short-description":".NET skill guidance for csharp tasks"} |
| opencode | {"allowed-tools":["Read","Grep","Glob","Bash","Write","Edit"]} |
| copilot | {} |
| geminicli | {} |
| antigravity | {} |
dotnet-cli-distribution
CLI distribution strategy for .NET tools: choosing between Native AOT single-file publish, framework-dependent
deployment, and dotnet tool packaging. Runtime Identifier (RID) matrix planning for cross-platform targets (linux-x64,
osx-arm64, win-x64, linux-arm64), single-file publish configuration, and binary size optimization techniques for CLI
applications.
Version assumptions: .NET 8.0+ baseline. Native AOT for console apps is fully supported since .NET 8. Single-file
publish has been mature since .NET 6.
Scope
- Distribution strategy decision matrix (AOT, framework-dependent, self-contained, dotnet tool)
- Runtime Identifier (RID) matrix planning for cross-platform targets
- Single-file publish configuration
- Binary size optimization for CLI tools
- Publishing workflow (local and release artifacts)
Out of scope
- Native AOT MSBuild configuration (PublishAot, ILLink descriptors) -- see [skill:dotnet-native-aot]
- AOT-first application design patterns -- see [skill:dotnet-aot-architecture]
- Multi-platform packaging formats (Homebrew, apt/deb, winget, Scoop) -- see [skill:dotnet-cli-packaging]
- Release CI/CD pipeline -- see [skill:dotnet-cli-release-pipeline]
- Container-based distribution -- see [skill:dotnet-containers]
- General CI/CD patterns -- see [skill:dotnet-gha-patterns] and [skill:dotnet-ado-patterns]
Cross-references: [skill:dotnet-native-aot] for AOT compilation pipeline, [skill:dotnet-aot-architecture] for AOT-safe
design patterns, [skill:dotnet-cli-architecture] for CLI layered architecture, [skill:dotnet-cli-packaging] for
platform-specific package formats, [skill:dotnet-cli-release-pipeline] for automated release workflows,
[skill:dotnet-containers] for container-based distribution, [skill:dotnet-tool-management] for consumer-side tool
installation and manifest management.
Distribution Strategy Decision Matrix
Choose the distribution model based on target audience and deployment constraints.
| Strategy | Startup Time | Binary Size | Runtime Required | Best For |
|---|
| Native AOT single-file | ~10ms | 10-30 MB | None | Performance-critical CLI tools, broad distribution |
| Framework-dependent single-file | ~100ms | 1-5 MB | .NET runtime | Internal tools where runtime is guaranteed |
| Self-contained single-file |