我将内部版本号格式指定为:
$(BuildDefinitionName)_$(Year:yyyy).$(Month).$(DayOfMonth)$(Rev:.r)
这将创建格式为“BuildDefinitionName_2015.11.11.1”的内部版本号
修订似乎是当天构建运行的次数。
我希望能够在进一步的构建步骤中使用这个值。
例如,我正在使用 nuget packager 步骤创建一个 nuget 包,并使用“使用内部版本号对包进行版本控制”选项
这会为我创建类似于“PackageName.2015.11.11.1.nupkg”的包
然后我想使用 nuget publisher 构建步骤来发布它,但问题是随着时间的推移,您在包文件夹中获得了多个包,而 nuget publisher 步骤使用一种模式来匹配要发布的包。
即
- "PackageName.2015.11.11.1.nupkg"
- "PackageName.2015.11.11.2.nupkg"
- "PackageName.2015.11.11.3.nupkg"
在不明确要发布的文件的情况下,发布者步骤将发布所有这些文件。
我不想要这个,我只想发布与当前版本号相匹配的文件。
所以我希望能够在模式中设置内部版本号部分。
即 PackageName.$(Year:yyyy).$(Month).$(DayOfMonth)$(Rev:.r).nupkg
但看起来这些变量并没有在搜索路径中被替换,而是作为文字匹配出现。
这似乎很奇怪,在 nuget 包步骤中它为您提供了通过内部版本号创建包的选项,但随后不允许您在 nuget 发布构建步骤中匹配它。
最佳答案
Nuget Packager 步骤使用 PowerShell 脚本获取内部版本号。源代码在这里:https://github.com/Microsoft/vso-agent-tasks/blob/84746169f19b7c3e3f67c0efa1a546c4107055fa/Tasks/NugetPackager/NuGetPackager.ps1
如果您确实想要将内部版本号传输到 Nuget Publish,您可以在构建过程中添加一个 PowerShell 步骤以获取内部版本号。详见Source Code中构建版本相关代码。
然后在 PowerShell 脚本的末尾添加代码:
Write-Host "##vso[task.setvariable variable=bversion;]$NewVersion"
此代码创建一个变量“bversion”,其中填充了构建版本号。然后您可以在 Nuget 发布步骤中使用变量 $(bversion)。
关于nuget - VSO Build vNext - Nuget Package Build Step - 使用内部版本号来版本包,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33648864/