我正在帮助一个 friend 进行 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 次构建来同步它,这样我们就可以开始在我们的完整工作流程中使用它。

    最佳答案

    不,这是不可能的。

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

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

    比如当前的Build.BuildId是148,即使你在一次build中通过Write-Host "##vso[task.setvariable variable=Build.BuildId]2148"把这个值改成100,但是当另一个build排队的时候,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

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

    对于下一个构建。 ojit_code 值为 1149。

    关于azure-devops - 是否可以手动更新构建变量 $(Build.BuildId),我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/47894722/

    10-13 06:13