我正在尝试创建一个 Azure 构建管道,其中内部版本号由 Powershell 生成。所以我有这两个任务:
steps:
- powershell: |
$env:NugetVersion = $env:BUILD_SOURCEBRANCHNAME;
if ($env:BUILD_SOURCEBRANCHNAME.StartsWith("dev-") -eq $true) {
$env:NugetVersion = $env:BUILD_SOURCEBRANCHNAME.SubString(4) + "." + (Get-Date).Ticks / 1000
}
displayName: 'PowerShell Script'
steps:
- task: NuGetCommand@2
displayName: 'NuGet pack'
inputs:
command: pack
configuration: Release
versioningScheme: byEnvVar
versionEnvVar: NugetVersion
我只是在 powershell 脚本中定义环境变量“NugetVersion”,然后尝试在“NuGet pack”命令中使用它。我不使用 $ 或 $env 或其他任何东西,如 Azure UI 中的工具提示中所述,但结果始终相同:
##[错误]未找到提供的环境变量的值。
在执行管道之前,我是否必须在某处预先创建此变量?请注意,我尝试Write-Host将变量的值作为脚本的最后一行并输出正确的值,所以我真的不明白 NuGet 任务如何告诉我它没有找到该变量。

