设置一个简单的类库来构建和发布到VSTS自己的feed,当NuGet包运行时,我看到了这个错误。
无法在BUILD_BUILDNUMBER中找到版本号数据
我有#34;使用内部版本编号到版本包"选项勾选。预期的VSTS才能正常工作。
答案 0 :(得分:29)
"使用内部版本编号到版本包"陈述:
将使用内部版本编号来打包您的版本。在“常规”下,将构建格式设置为“
$(BuildDefinitionName)_$(Year:yyyy).$(Month).$(DayOfMonth)$(Rev:.r)
'
在此之后确实让我解决了这个问题(以及新问题)。
默认值:
[]
正确的价值:
[]
答案 1 :(得分:9)
这是因为您的内部版本号与“Nuget Packager”步骤中的正则表达式不匹配。以下是nuget packager任务用于查找内部版本号的正则表达式。您可以根据此设置构建号格式。一般情况下,1.2.3或1.2.3.4等格式可以使用。
Write-Verbose "Autoversion: Getting version number from build"
##Get Version from Build
# Regular expression pattern to find the version in the build number
# and then apply it to the assemblies
$VersionRegex = "\d+\.\d+\.\d+(?:\.\d+)?"
答案 2 :(得分:0)
我的.nuspec文件中有一个变量:
<tags>Build#$build$</tags>
在包构建步骤中未正确参数化。在构建编辑器中打开包步骤后,我将“高级”部分扩展为“附加构建属性”此文本
build=$(Build.BuildNumber)
答案 3 :(得分:0)
如果您想要的是major.minor.patch.unique-to-build
,则可以使用Use the date and time
选项。
在yaml中,等效值为
- task: NuGetCommand@2
displayName: Pack
inputs:
command: 'pack'
packagesToPack: '**/*.csproj'
versioningScheme: 'byPrereleaseNumber'
majorVersion: '1'
minorVersion: '0'
patchVersion: '0'