自定义VSTS构建任务调用PhantomJS创建镜像文件失败
Custom VSTS Build Task to Call PhantomJS Fails to Create Image File
我正在编写自定义 VSTS 扩展(基于参数)请求 URL 并通过电子邮件发送结果。除了调用 PhantomJS exe 的部分外,我的所有部分都正常运行。这是在附加到电子邮件之前生成屏幕截图所必需的。
相关PowerShell代码如下:
Write-Verbose "Run phantomjs with $testingurl"
Start-Process -FilePath "phantomjs.exe" -ArgumentList "screenshot.js",$testingurl
$directory = Get-ScriptDirectory
Get-ChildItem $directory -force
我正在使用相关参数调用 PhantomJS,它应该会在我的工作目录中创建一个名为 'example.png' 的图像。但是,当我输出目录的内容时,文件不存在。
我试过扩展程序的 "scope",但没有用。我当前的范围是:
"scopes": [
"vso.build_execute",
"vso.serviceendpoint_manage",
"vso.code_manage",
"vso.packaging_manage",
"vso.release_execute",
"vso.work_write"
],
我还验证了如果我使用标准 PS commandlet,我可以创建一个文件:
New-Item "$directory\test.txt" -ItemType file
我还尝试在我的 VSIX 程序包中包含一个空白 'example.png',希望它能被覆盖,但它没有。
所以,我确信这不是写权限问题。 VSTS 日志没有显示对 PhantomJS exe 的调用失败。
是否不允许从 VSTS 扩展(构建任务)中的 PS 脚本调用 exe? PS 脚本在本地正常工作,所以我觉得这更像是一个 environment/permission/allowance 问题,而不是我的代码问题。
我的问题最终是 exe 是 运行 并且我的代码继续执行。我必须在调用中添加“-Wait”属性:
Start-Process -FilePath "phantomjs.exe" -ArgumentList "screenshot.js",$testingurl -Wait
由于调用 phantomjs.exe
之后的行需要执行完成,“-Wait”确保它 运行 首先完成。
我正在编写自定义 VSTS 扩展(基于参数)请求 URL 并通过电子邮件发送结果。除了调用 PhantomJS exe 的部分外,我的所有部分都正常运行。这是在附加到电子邮件之前生成屏幕截图所必需的。
相关PowerShell代码如下:
Write-Verbose "Run phantomjs with $testingurl"
Start-Process -FilePath "phantomjs.exe" -ArgumentList "screenshot.js",$testingurl
$directory = Get-ScriptDirectory
Get-ChildItem $directory -force
我正在使用相关参数调用 PhantomJS,它应该会在我的工作目录中创建一个名为 'example.png' 的图像。但是,当我输出目录的内容时,文件不存在。
我试过扩展程序的 "scope",但没有用。我当前的范围是:
"scopes": [
"vso.build_execute",
"vso.serviceendpoint_manage",
"vso.code_manage",
"vso.packaging_manage",
"vso.release_execute",
"vso.work_write"
],
我还验证了如果我使用标准 PS commandlet,我可以创建一个文件:
New-Item "$directory\test.txt" -ItemType file
我还尝试在我的 VSIX 程序包中包含一个空白 'example.png',希望它能被覆盖,但它没有。
所以,我确信这不是写权限问题。 VSTS 日志没有显示对 PhantomJS exe 的调用失败。
是否不允许从 VSTS 扩展(构建任务)中的 PS 脚本调用 exe? PS 脚本在本地正常工作,所以我觉得这更像是一个 environment/permission/allowance 问题,而不是我的代码问题。
我的问题最终是 exe 是 运行 并且我的代码继续执行。我必须在调用中添加“-Wait”属性:
Start-Process -FilePath "phantomjs.exe" -ArgumentList "screenshot.js",$testingurl -Wait
由于调用 phantomjs.exe
之后的行需要执行完成,“-Wait”确保它 运行 首先完成。