Azure devops “设置”;路径“;vsts构建期间的环境变量,因此它将在整个构建任务(特别是vsTest任务)中保持不变

Azure devops “设置”;路径“;vsts构建期间的环境变量,因此它将在整个构建任务(特别是vsTest任务)中保持不变,azure-devops,azure-pipelines,azure-pipelines-build-task,vstest,Azure Devops,Azure Pipelines,Azure Pipelines Build Task,Vstest,我有一个vsts构建定义,在其中我尝试使用PowerShell(在我尝试cmd)任务设置PATH环境变量,以便在稍后的vsTest任务中,测试可以从该路径运行exe,但是使用ps\cmd任务设置路径似乎不起作用,我尝试了一些选项,例如: [Environment]::SetEnvironmentVariable("Path", $env:Path + ";" + $newPath, [EnvironmentVariableTarget]::User) setx path " %newPath;

我有一个vsts构建定义,在其中我尝试使用PowerShell(在我尝试cmd)任务设置PATH环境变量,以便在稍后的vsTest任务中,测试可以从该路径运行exe,但是使用ps\cmd任务设置路径似乎不起作用,我尝试了一些选项,例如:

[Environment]::SetEnvironmentVariable("Path", $env:Path + ";" + $newPath, [EnvironmentVariableTarget]::User)

setx path " %newPath;%PATH%"

有什么建议吗?

通过PowerShell任务调用设置流程环境变量:

例如:

Write-Host "##vso[task.setvariable variable=PATH;]${env:PATH};$newPath";

如果需要在Linux管道中执行此操作,可以执行以下操作:


-script:echo“##vso[task.setvariable=PATH]${PATH}:”

环境变量通常由子进程继承,但连续调用的进程将无法以这种方式获取值。您可以设置一个可以在以后的测试任务中查询的文件,以获取所需的路径。是的,我只是这样做了。顺便说一句,如果您正在注入一个在其值中包含美元符号的秘密变量,则这无法正常工作。美元符号将从最终值中删除。我在注入包含美元符号的秘密连接字符串时遇到了这个特定问题。请确保不要将
isOutput=true
作为参数添加到
任务中。setvariable
-它当时对我不起作用。在Kudu中,azure函数应该如何使用它?我得到:$newPath=“D:\home\python364x86”PS D:\home>Write Host”##vso[task.setvariable=PATH;]${env:PATH};$newPath”;写入主机“##vso[task.setvariable variable=PATH;]${env:PATH};$newPath”;写入主机:发生Win32内部错误“句柄无效”0x6