如何在VSTS构建定义中使用$(Rev:r)?

时间:2019-03-07 13:18:13

标签: azure-devops

我要求我的构建通过私有构建代理生成abc.msi文件。现在我添加了Powershell任务以使用abc_3.0.0 $(Rev:r).msi重命名abc.msi,但Powershell任务是失败。请帮我解决这个问题。我想使用abc_3.0.0.1,abc_3.0.0.2,abc_3.0.0.3 ...等构建名称格式。随着构建的增加,$(Rev:r)的值。

我正在运行的Powershell命令是:

Rename-Item -Path "C:\Softwares\vsts-agent-win-x86-2.147.1\_work\1\s\src\abcSetup\Release\abc.msi" -NewName "C:\Softwares\vsts-agent-win-x86-2.147.1\_work\1\s\src\abcSetup\Release\abc_3.0.0.$(Rev:r).msi"

错误:

  

Rev:r:术语'Rev:r'不被识别为cmdlet的名称,   功能,脚本文件或可操作程序。检查拼写   名称,或者如果包含路径,请确认路径正确,并   再试一次。在   C:\ Softwares \ vsts-agent-win-x86-2.147.1_work_temp \ fef4cc6a-e677-4a08-ab29-73c7c31da755.ps1:2   字符:243   + ... ork \ 1 \ s \ src \ abcSetup \ Release \ abc_3.0.0。$(Rev:r).msi“   + ~~~~~       + CategoryInfo:ObjectNotFound:(Rev:r:String)[],ParentContainsErrorRecordException       + FullyQualifiedErrorId:CommandNotFoundException

     

[错误] PowerShell退出,代码为“ 1”。

     

[section]完成:重命名.MSI文件

1 个答案:

答案 0 :(得分:1)

在Azure DevOps $(rev:.r)中,这是一种特殊的变量格式,仅在编辑器的内部版本号字段中有效。

  

使用$(Rev:.rr)来确保每个完成的构建都有唯一的名称。   构建完成后,如果构建号中没有其他内容   更改后,Rev整数值将增加一。

     

来源:Specify general build definition settings

BUILD_BUILDNUMBER是预定义的变量。如果使用此名称创建定义变量,则引用该定义变量的所有任务都将获得该变量的值,而不是系统定义的值。

如果您要创建一个计数器变量,可以使用counter()表达式来实现。 See this documentation for details。它以yaml为中心,但也可以在编辑器中使用。