在vsts中运行的Powershell脚本不会识别环境变量

时间:2018-02-21 18:26:18

标签: powershell environment-variables azure-devops azure-pipelines azure-pipelines-release-pipeline

我使用Azure PowerShell脚本创建了一个VSTS版本,该脚本运行正常。当我尝试从我的VSTS版本调用完全相同的脚本(git repo中完全相同的文件)时,会出现问题。当脚本运行时,我没有错误,但环境变量$Env:BUILD_SOURCESDIRECTORY为空。就像我之前所说的,VSTS构建完美执行但我无法在VSTS版本中运行完全相同的代码。

2 个答案:

答案 0 :(得分:2)

您的问题是您在发布中使用 Build 变量。这只是不起作用,它是空的,因为它在发布上下文中根本就不存在。

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

您没有提及它,但如果您说明为什么您认为需要访问构建变量,那么我们可以帮助您在此找到更好的解决方案。

答案 1 :(得分:1)

并非所有Build中可用的变量都在Release中可用。 Sources目录在构建期间可用。如果要在Release期间保持可用,则应在Build中创建一个artefact,将其命名为Sources。这样,人工制品将通过各自的变量在Release中提供。

可用变量概述: