You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用dotnet pack时出现PackageVersion无效错误该如何解决

dotnet pack 预发布版本号带前导零打包失败问题说明及修复方案

这是旧版 .NET SDK 绑定的 NuGet 组件的已知问题,你遇到的外层 MSB4018 是任务执行失败的通用报错,底层对应 NU5024 校验错误。
早期 NuGet 的 SemVer 校验逻辑存在实现限制,会拦截所有预发布段中纯数字标识符带前导零的版本号,即使你确认版本号符合 SemVer 规范也会被判定为非法。

修复方案

  • 方案1:升级 .NET SDK
    该问题在 .NET SDK 6.0.100 及以上版本已完成修复,升级到对应版本后即可正常打包。
  • 方案2:添加项目配置跳过校验
    如果暂时无法升级SDK,可在项目 .csproj 文件的 <PropertyGroup> 节点中添加以下配置,关闭预发布段前导零校验:
    <NoErrorOnZeroPaddingVersion>true</NoErrorOnZeroPaddingVersion>
    
  • 方案3:调整版本号格式兼容旧版本
    你可以在作为Git哈希的数字段前添加一个非数字前缀(业界常用g代表Git提交),将版本号调整为1.0.8-INF-2382.9.g088820。此时该标识符不再是纯数字格式,不会触发前导零校验,同时完整保留了原Git哈希信息,不需要修改哈希本身。

内容的提问来源于stack exchange,提问作者David Gard

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.25 04:15:01