Azure devops Azure管道设置基于条件的任务显示名称

Azure devops Azure管道设置基于条件的任务显示名称,azure-devops,azure-pipelines,azure-pipelines-build-task,Azure Devops,Azure Pipelines,Azure Pipelines Build Task,在构建管道中,我有一个作业,它使用powershell脚本根据如下变量设置应用程序名称: $applicationName = If ('$(configuration)' -eq 'Release') { 'Appname' } Else { 'Appname-Test' } Write-Host "##vso[task.setvariable variable=applicationName]$applicationName" - task: PublishBuil

在构建管道中,我有一个作业,它使用powershell脚本根据如下变量设置应用程序名称:

$applicationName = If ('$(configuration)' -eq 'Release') { 'Appname' } Else { 'Appname-Test' }
Write-Host "##vso[task.setvariable variable=applicationName]$applicationName"
  - task: PublishBuildArtifacts@1        
    displayName: $[variables.applicationName] #  runtime variable
我尝试设置
PublishBuildArtifacts@1
将变量转换为如下所示的变量:

$applicationName = If ('$(configuration)' -eq 'Release') { 'Appname' } Else { 'Appname-Test' }
Write-Host "##vso[task.setvariable variable=applicationName]$applicationName"
  - task: PublishBuildArtifacts@1        
    displayName: $[variables.applicationName] #  runtime variable

但这实际上显示的是
$[variables.applicationName]
,而不是变量值。如何根据变量更改任务的显示名称?

目前似乎不可能这样做。在我发现的两个问题中,他们都将此描述为功能请求


您可以这样使用变量:$(variableName)。例如:

pool:
  vmImage: 'windows-latest'

variables:
  test: "SomeValue"

steps:
- task: PowerShell@2
  inputs:
    targetType: 'inline'
    script: 'Write-Host "Hello World"'
  displayName: "The variable $(test)"
结果是:


哦,太好了,我明天再查。我猜在我的尝试中,我使用了单引号而不是双引号,它只适用于
变量
声明,但是当我尝试覆盖值(例如“SomeValue”到“AnotherValue”)时,会显示旧值。如何覆盖值?我有两个作业在我的管道中。在第一个作业中,我使用powershell覆盖变量-请参阅问题中包含的代码。然后我尝试在第二个作业中使用这个被覆盖的值作为displayname。@MatthiasHerrmann这样做是因为在管道开始运行时,步骤名称会被计算,所以即使您更改变量值,也不会影响步骤名称。根据另一个答案中的示例,这可能已经完成。可能在我正在查看的内部版本中不可用。无论何时你改变“答案”,我都会删除这个。