パイプラインで定義された元の値を上書きしたと思いました。
はい、キュー時間に元の変数値が上書きされました。
あなたが示したimgsによると、IsProductionRelease
これはあなたのpowershellスクリプトでも生成される「False」として計算されます。これは、キュー時間変数が正しく機能していることを意味します。理由。
参照できるデモを作成しました:
はブランチSourceBranch
に設定されています。master

変数IsProductionRelease
:

最初のテストでは、変数の値は変更されませんでした。
Variables:
IsProductionRelease:
Parsing expression: <startsWith(variables['Build.SourceBranch'],'refs/heads/release')>
Evaluating: startsWith(variables['Build.SourceBranch'], 'refs/heads/release')
Expanded: startsWith('refs/heads/master', 'refs/heads/release')
Result: 'False'
また、powershell も「False」値を返します。
Is Producetion Release = False
2 番目のテストでは、IsProductionRelease
値を$[startsWith(variables['Build.SourceBranch'],'refs/heads/master')]
次のように変更します。

計算結果:
Variables:
IsProductionRelease:
Parsing expression: <startsWith(variables['Build.SourceBranch'],'refs/heads/master')>
Evaluating: startsWith(variables['Build.SourceBranch'], 'refs/heads/master')
Expanded: startsWith('refs/heads/master', 'refs/heads/master')
Result: 'True'
そして、powershellは「True」を返します
Is Producetion Release = True
プロセス全体をもう一度確認してください。