Не удается преобразовать значение «System.String» в тип «System.Boolean»

Я пытаюсь поместить переменную в параметр конвейера yml для Azure DevOps. Я пытаюсь сделать это так:

variables:
  myArg: true

- template: my-custom-template.yml@myrep
  parameters:
    myArg: $[ eq(variables.argVal, 'true') ]

Но я получаю сообщение об ошибке:

$[eq(variables.argVal, 'истина') ]

Не удается обработать преобразование аргумента для параметра | 'мойАрг'. Не удается преобразовать значение «System.String» в тип | "Системный.Булев". Логические параметры принимают только логические значения и | числа, такие как $True, $False, 1 или 0.

Вместо $[ eq(variables.argVal, 'true') ] я попробовал ${{ eq(variables.argVal, 'true') }} и $( eq(variables.argVal, 'true') ). Все выдавали одну и ту же ошибку.

Итак, может ли кто-нибудь помочь мне понять, как правильно преобразовать переменную в логический параметр в конвейере Azure DevOps yml, пожалуйста?

В чем разница между методом "==" и equals()
В чем разница между методом "==" и equals()
Это один из наиболее часто задаваемых вопросов новичкам на собеседовании. Давайте обсудим его на примере.
Замена символа по определенному индексу в JavaScript
Замена символа по определенному индексу в JavaScript
В JavaScript существует несколько способов заменить символ в строке по определенному индексу.
0
0
88
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Вы не можете использовать параметры с выражениями времени выполнения ($[]). Параметры разрешаются во время компиляции шаблона, прежде чем можно будет оценить выражения времени выполнения. Вы должны использовать выражения компиляции, ${{}}

Другие вопросы по теме