2016-05-06 6 views
0

私はTFS 2015 Update 2を新しいビルド/リリースシステムと共に使用しています。 PowerShellのタスクで実行しているpowershellスクリプトがあります。このタスクは、多くの異なるVSTSタスクコードサンプルで見られる$ distributedExecutionContextマジック変数へのアクセスを必要とするpowershellスクリプトを実行します。カスタムTFSビルド/リリーススクリプトでDistributedTaskContextを取得

このスクリプトは技術的にはタスクではなく、代わりにTFSで提供されるPowershellタスクによって実行されています。

私が何をしても、$ distributedExecutionContext変数を取得することはできません。それは常にnullです。ここに例があります:

Import-Module "Microsoft.TeamFoundation.DistributedTask.Task.Internal" 

if($distributedTaskContext) 
{ 
    #... this never happens 
} 
実行中のpowershellが実際のタスク内で実行されている場合のみ、この変数は使用できますか?

答えて

0

デフォルトのpowershellタスクでは、スクリプトが完全に別のプロセスとして実行され、$distributedTaskContext変数はスクリプトで使用できません。

タスクのpowershellスクリプトでのみ使用できます。

カスタムタスクを作成する場合は、新しいvsts-task-lib SDKを使用して、古いSDKを大幅に改善してください。

+0

したがって、タスク自体よりも「深い」タスクコンテキストを取得する方法はありませんか? Powershellタスクが実行しているpoweshellスクリプトの中にいますか? 私がしなければならないのは、カスタムタスクを書くつもりですが、ほとんどのものについては、普通のPowerShellスクリプトでは十分な作業が完了しています。この場合、いくつかのテスト結果をTFSに公開したいのですが、そのような状況がなければ困難であることが証明されています。 – RMD

+0

私はちょうどVSTS拡張を書くことになった、そしてこれは文脈を提供した。 TFSチームは、VSエージェントによって実行されている任意のスクリプトで、そのコンテキストを周囲に取得できるように真剣に検討する必要があります。 – RMD

関連する問題