gpt4 book ai didi

powershell - VSTS 构建定义 - 防止导致进程终止的 PowerShell 退出行为

转载 作者:行者123 更新时间:2023-12-02 01:14:40 26 4
gpt4 key购买 nike

我的定义中有一个 PowerShell 任务,它自己调用另一个脚本文件,它负责在我的构建代理上运行几件事(启动几个不同的进程)——模拟器、node.js 应用程序等

在完成此步骤并继续运行之前,一切都很好。上面提到的所有内容都会随着大多数底层进程的终止而关闭,因此,任何进一步的执行(例如测试运行)都注定会失败。

我的假设是这些进程在某种程度上依赖于 VSTS 生成的最外层(临时)脚本来处理该步骤。

我尝试使用脚本的参数列表中指定的 -NoExit 开关,但无济于事。我还在某处读到建议使用 powershell.exe 的注册表项默认设置它 - 仍然没有。

在 Jenkins 中完全相同的工作流程是可以的。我该如何解决这个问题?

这些是我的任务:

VSTS tasks

最后一个 PowerShell 任务会调用一个指定的 PowerShell 文件,该文件会自行调用其他几个文件。他们确保开始执行测试所需的一些本地依赖项和过程,例如一个正在运行的 Node.js 应用程序(例如在单独的控制台中启动并运行良好)。

当任务完成并成功时,最后一个测试将失败,因为 Node.js 应用程序以及在上一步中启动的任何其他应用程序已关闭。它只是停止一切。这就是为什么我目前在同一任务本身内运行测试,直到我找到如何克服这种行为。

最佳答案

我不确定您如何在 PowerShell 脚本中调用依赖项和应用程序。但是我尝试在 PowerShell 脚本任务中使用以下命令来运行 Node.js 应用程序:

invoke-expression 'cmd /c start powershell -Command {node main.js}'

PowerShell脚本任务通过并完成后,应用程序继续运行,应该可以满足您的要求。有关详细信息,请参阅此问题: PowerShell launch script in new instance

但是需要记得在测试结束后关闭进程。

关于powershell - VSTS 构建定义 - 防止导致进程终止的 PowerShell 退出行为,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43203959/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com