CI/CD中NuGet包版本无效报错,排查突发原因求助
问题原因
NETSDK1018错误的核心是你用的版本号1.0.0-06181390违反了NuGet版本规范:
- NuGet规定,预发布版本的标识符如果是纯数字段,不能带有前导零。你的版本号里
-后面的06181390是纯数字且以0开头,触发了验证失败。 - 之前流程正常是因为
CI_COMMIT_SHORT_SHA生成的短哈希从没以0开头过,这次刚好碰到了这个边界场景。
修复方案
方案1:给哈希加非数字前缀(推荐)
修改版本号的拼接规则,在短哈希前加一个非数字前缀,比如git-:
VERSION="1.0.0-git-$CI_COMMIT_SHORT_SHA"
生成的版本号会变成1.0.0-git-06181390,预发布段不再是纯数字,自然符合NuGet的要求。
方案2:关闭自动程序集信息生成(临时应急)
如果不想改版本号格式,可以在项目的.csproj文件里添加配置,跳过自动生成程序集信息时的版本验证:
<PropertyGroup> <GenerateAssemblyInfo>false</GenerateAssemblyInfo> </PropertyGroup>
但这种做法会完全关闭自动程序集信息生成,可能带来其他潜在问题,不建议长期使用。
内容的提问来源于stack exchange,提问作者Rama Rahul
相关产品推荐
相关产品推荐

