vsts 版本中的 Powershell 脚本 运行 无法识别环境变量

Powershell script running in vsts release not recognizing environment variables

我使用 Azure PowerShell 脚本创建了一个 VSTS 构建,它运行良好。当我尝试从我的 VSTS 版本中调用完全相同的脚本(git 存储库中的完全相同的文件)时,问题就出现了。当脚本 运行s 我没有收到任何错误,但环境变量 $Env:BUILD_SOURCESDIRECTORY 为空。就像我在 VSTS 构建完美执行之前所说的那样,但我无法 运行 VSTS 版本中的完全相同的代码。

并非所有在 Build 中可用的变量在 Release 中都可用。 Sources 目录在构建期间可用。如果你想在发布期间保持它可用,你应该在构建中创建一个工件,将其命名为源。这样,工件将通过其各自的变量在 Release 中可用。

可用变量概述:

您的问题是您在 Release 中使用了 Build 变量。这只是行不通,它是空的,因为它根本不存在于发布上下文中。

即使你能做到,我也不建议你这样做。您的发布应该完全依赖于工件,而不是在生成工件时构建变量。你当然可以在你的工件中定义这个变量,并从发布中访问,但我强烈建议你不要走这条路,因为这是一个非常糟糕的做法。

你没有提到它,但如果你说明了为什么你认为你需要访问构建变量,也许我们可以帮助你在这里找到更好的解决方案。