假设我有一个名为" Dynamics_1_2_3_4.zip"的解决方案。我想要名称,版本(1,2,3,4)存储在VSTS中的不同对应变量中。我如何实现这一目标?
SolutionName = Dynamics
SolutionVersionMajor = 1
SolutionVersionMinor = 2
SolutionVersionBuild = 3
SolutionVersionRevision 4
我的目标是增加其中一个解决方案版本的值。感谢
答案 0 :(得分:1)
我已经answered on GitHub了。 您可以在其中添加类似这样的PowerShell步骤:
"MySolution_1_2_3_4.zip" -match "^(?<name>\w+?)_(?<major>\d+)_(?<minor>\d+)_(?<build>\d+)_(?<revision>\d+).zip$"
Write-Host "##vso[task.setvariable variable=SolutionName;]$($matches['name'])"
Write-Host "##vso[task.setvariable variable=SolutionVersionMajor;]$($matches['major'])"
Write-Host "##vso[task.setvariable variable=SolutionVersionMinor;]$($matches['minor'])"
Write-Host "##vso[task.setvariable variable=SolutionVersionBuild;]$($matches['build'])"
Write-Host "##vso[task.setvariable variable=SolutionVersionRevision;]$($matches['revision'])"
在该步骤之后,VSTS将具有可用的变量,如$(SolutionVersionBuild)
答案 1 :(得分:0)
请参阅以下步骤:
Inline Script
;参数:-p [The folder path of file, such as $(Build.SourcesDirectory)]
; 脚本:
param(
[string]$p
)
Write-Host $p
$files=Get-ChildItem -Path "$p\Dynamics*.zip"
$name=$files[0].name.Split('\')[-1]
Write-Host $name
# scripts as Michael said
注意:$(Build.SourcesDirectory)
是代理程序中下载源代码文件的本地路径。例如:c:\ agent_work \ 1 \ s