我要求我的构建通过私有构建代理生成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文件
答案 0 :(得分:1)
在Azure DevOps $(rev:.r)
中,这是一种特殊的变量格式,仅在编辑器的内部版本号字段中有效。
使用$(Rev:.rr)来确保每个完成的构建都有唯一的名称。 构建完成后,如果构建号中没有其他内容 更改后,Rev整数值将增加一。
BUILD_BUILDNUMBER
是预定义的变量。如果使用此名称创建定义变量,则引用该定义变量的所有任务都将获得该变量的值,而不是系统定义的值。
如果您要创建一个计数器变量,可以使用counter()表达式来实现。 See this documentation for details。它以yaml为中心,但也可以在编辑器中使用。