是否可以手动更新构建变量 $(Build.BuildId)

And*_*ing 3 azure-devops

我正在帮助一个朋友进行 VSTS 构建,我们正在使用这两个构建标识符

  • $(Build.BuildId)
  • $(Build.BuildNumber)

这是特定于 Xamarin.iOS 构建的,我们使用新的 VSTS 构建任务来更新 Info.Plist。我们需要使用 $(Build.BuildId) 作为版本代码,它只是一个递增的数字。然后我们要使用 $(Build.BuildNumber) 作为实际的版本名称。如果要将其格式化为构建字符串,它将如下所示:

  • $(Build.BuildNumber) = 1.0.0
  • $(Build.BuildId) = 148
  • 结果 = 1.0.0 (148)

问题是我们已经将我们的应用程序提交到应用程序商店,其构建 ID 比我们当前的构建 ID 更大。我们希望手动更新 BuildId,而不是运行 X 次构建来同步它,这样我们就可以开始在我们的完整工作流程中使用它。

Mar*_*Liu 6

不,这是不可能的。

预定义的变量Build.BuildId值是唯一的,用于记录 VSTS 帐户中的 echo build。

即使您可以通过 logging 命令更改该值,但它仅适用于当前构建,当您排队下一个构建时,构建 ID 将继续增加而没有任何影响。

比如当前Build.BuildId是148,即使你Write-Host "##vso[task.setvariable variable=Build.BuildId]2148"在一个构建中使用这个值到100 ,但是当另一个构建排队时,这个值Build.BuildId也会是149。

解决方法是使用用户定义的变量Build.BuildId:

添加用户定义的变量,例如custom.BuildId并使用 设置值($(Build.BuildID)+GapNumber)。

比如当前Build.BuildID是148,而你在app store提交的build ID是2148,那么你就可以使用custom.BuildId带有值的($(Build.BuildID)+2000)。然后将变量$(custom.BuildId)和$(Build.BuildNumber)用于您的应用程序。

在此处输入图片说明

对于下一个构建。该custom.BuildId值将为 1149。

  • 目前这是一个很好的解决方法。我正在与来自 Microsoft 的 Chris Patterson 交谈,他说 2018 年初将推出一项新功能,该功能支持使用类似于 BuildID 工作方式的种子编号进行递增 (3认同)