2017-03-23 13 views
1

(パラメータに基づいて)URLを要求して結果を電子メールで送信するカスタムVSTS拡張機能を作成中です。 PhantomJS exeを呼び出す部分を除いて、私はそれを正しく機能させています。これは、電子メールに添付する前にスクリーンショットを生成するために必要です。次のようにPhantomJSを呼び出すカスタムVSTSビルドタスクで画像ファイルが作成されない

関連PowerShellのコードは次のとおりです。

Write-Verbose "Run phantomjs with $testingurl" 
Start-Process -FilePath "phantomjs.exe" -ArgumentList "screenshot.js",$testingurl 
$directory = Get-ScriptDirectory 
Get-ChildItem $directory -force 

私は「example.png」と呼ばれる自分の作業ディレクトリにイメージを作成する必要があります関連するパラメータ、とPhantomJSを呼び出しています。ただし、ディレクトリの内容を出力するとファイルは存在しません。

私は自分の内線の「範囲」で遊んだことがありますが、助けにはなりません。私の現在のスコープは、以下のとおりです。

私も、私は標準のPSコマンドレットを使用する場合、私は、ファイルを作成できることを確認
"scopes": [ 
    "vso.build_execute", 
    "vso.serviceendpoint_manage", 
    "vso.code_manage", 
    "vso.packaging_manage", 
    "vso.release_execute", 
    "vso.work_write" 
], 

New-Item "$directory\test.txt" -ItemType file 

は、私も含めて試してみましたが、私のVSIXに「example.png」空白うまくいけば上書きされるでしょうが、そうではありません。

私はそれが書き込み権限の問題ではないと確信しています。 VSTSログは、PhantomJS exeへの呼び出しが失敗したことを示すものではありません。

VSTS拡張機能(ビルドタスク)内からPSスクリプトからEXEを呼び出すことはできませんか? PSスクリプトはローカルで正しく動作するので、私はこれが自分のコードの問題よりも環境/許可/許容量の問題だと感じています。

+0

スコープは必要ありません。ビルドタスクは、スコープを指定しないでファイルシステムにアクセスできます。実行ファイルをうまく呼び出すことはできますが、作業ディレクトリが期待しているものと一致しないことがあります。 'get-command phantomjs.exe'を呼び出して、powershellがそれを見つけることができるかどうか調べてください。 – jessehouwing

+0

'$ PSScriptRoot'を使って、あなたのタスクが配備された場所を探してみてください。 – jessehouwing

+0

します。ディレクトリを出力すると正しく戻ってきましたが、私はあなたの提案をします。 – jrap

答えて

0

私の問題は、exeが実行され、コードが実行され続けることになりました。私は私のコールに「-wait」属性を追加する必要がありました:

Start-Process -FilePath "phantomjs.exe" -ArgumentList "screenshot.js",$testingurl -Wait 

phantomjs.exeへの呼び出し次の行ので「-wait」は、それが最初の完了まで実行を保証し、完了するために実行する必要があります。

+0

答えとしてマークすることができます。 –

+0

Thanks @ Eddie-MSFT – jrap

関連する問題