用途:管理 .NET 项目的发布生命周期,包括版本号计算、语义化版本策略、变更日志、预发布流程与发布分支模式。基线假设为 .NET 8.0+、Nerdbank.GitVersioning 3.6+ 与 SemVer 2.0。
主要能力:
- NBGV 配置:通过 version.json 与 git 提交高度自动生成确定性版本,无需手动改版本号。安装与初始化命令:dotnet tool install --global nbgv;nbgv install。常用命令:nbgv get-version、nbgv prepare-release、nbgv cloud。version.json 支持 version、publicReleaseRefSpec、cloudBuild、nugetPackageVersion、assemblyVersion.precision、inherit 等字段;monorepo 可在子目录放置 version.json 并设 inherit: true。
- SemVer 策略:库按破坏性变更升 major、向后兼容新功能升 minor、修复升 patch,并列出 .NET 特有破坏性变更判断(如移除公共类型、改返回类型、密封类等);应用可采用 SemVer、CalVer、构建号或 NBGV 高度,并可用 InformationalVersion 嵌入构建元数据。
- 变更日志:遵循 Keep a Changelog 格式,可用 git-cliff 从约定式提交自动生成,命令如 cargo install git-cliff、git cliff --output CHANGELOG.md、git cliff --unreleased。
- 预发布流程:alpha→beta→rc→stable 推进,NBGV 通过修改 version.json 后缀实现;非 NBGV 项目可用 VersionPrefix/VersionSuffix 或 dotnet pack /p:VersionSuffix=...。
- 发布分支:主干加标签、发布分支、热修复分支三种模式,并给出对应 git 命令与适用场景。
限制与注意:NBGV 的 version.json 只写 major.minor,patch 由提交高度计算;浅克隆会导致版本错误,CI 需 fetch-depth: 0;publicReleaseRefSpec 是正则而非通配符。CI/CD 推送部署、GitHub Release 创建、NuGet 包元数据与签名、项目级配置不在本技能范围内,分别参见其他技能。资料未提供收费、价格与平台信息。