SuperAPI AI 工具集

dotnet-cli-distribution

编程与开发

查看项目

更新于 10-16 07:23

技能介绍

用途:为 .NET 命令行工具选择分发策略,并规划跨平台发布与体积优化。覆盖四种模式:Native AOT 单文件(约 10ms 启动、10-30MB、无需运行时)、框架依赖单文件(约 100ms、1-5MB、需 .NET 运行时)、自包含单文件(约 100ms、60-80MB、无需运行时)、dotnet tool(约 200ms、NuGet 小于 1MB、需 .NET SDK)。

主要能力:给出分发决策矩阵;规划 RID 矩阵,常用 linux-x64、linux-arm64、osx-arm64、win-x64,可选 osx-x64、linux-musl-x64、linux-musl-arm64、win-arm64;配置单文件发布;CLI 二进制体积优化;本地与发布产物工作流。版本基线为 .NET 8.0+,AOT 控制台应用自 .NET 8 起受支持,单文件发布自 .NET 6 成熟。

必要用法:按 RID 发布,例如 dotnet publish -c Release -r linux-x64。框架依赖单文件:dotnet publish -c Release -r linux-x64 /p:PublishSingleFile=true --self-contained false;自包含单文件把末尾改为 --self-contained true;Native AOT 在 csproj 设 PublishAot=true 后执行 dotnet publish -c Release -r linux-x64。单文件配置含 PublishSingleFile、SelfContained、DebugType=embedded、IncludeNativeLibrariesForSelfExtract。体积优化可按情况启用 PublishTrimmed、TrimMode=link、InvariantGlobalization、StripSymbols、OptimizationPreference=Size,并审计 NuGet 依赖。发布产物应生成 SHA-256 校验和。

限制与注意:不要在 csproj 硬编码 RuntimeIdentifier,发布时传 -r;不要同时用 PublishSingleFile 与 PublishAot;不要跳过 InvariantGlobalization;不要分发未裁剪的自包含二进制;不要在发布脚本硬编码密钥。Native AOT 的 MSBuild 细节、AOT 架构设计、平台打包格式、发布 CI/CD、容器分发不在本技能范围内,另有对应技能。ARM64 在 x64 上交叉编译需平台工具链;文档未提供具体收费、价格信息。