現在、PowerShellではなくNode.jsに基づいているため、カスタムTFSビルドタスクを書き直しています。しかし、私は以下の問題に遭遇しました:
既存のタスクでは、ユーザーは、タスク結果を環境変数に書き込むかどうかを決定できます。これは、タスクの結果が何であれ、彼が仕事をするスクリプトをいくつか追加したい場合に便利です。タスクが終了した後Node.jsのタスク間で情報を共有する方法TFSのビルドタスク?
[Environment]::SetEnvironmentVariable($variableName, "The Value to Set", "User")
、それは次のようにPowerShellで例えば、読み出すことができます:PowerShellでは私はこのような「ユーザーレベルの環境変数」を設定することにより、ことが達成
$variable = [Environment]::GetEnvironmentVariable($variableName,"User")
しかし、私はNode.jsのTaskで同じことを達成する方法を見つけることができませんでした。 process.env["variable"]
で設定した場合、実行される以下のタスクのいずれでも使用できなくなります。 https://github.com/Microsoft/vsts-task-lib/blob/master/node/docs/vsts-task-lib.md#tasksetTaskVariable
をしかし今、私は、その後のタスクでこの変数にアクセスする方法がわからない:私はVSTS TASKLIBを提供していますsetTaskVariable方法つまずいたいくつか検索した後
。 tasklib(PowerShellまたはNodeのいずれか)をベースにしたカスタムタスクを使用する場合はgetTaskVariableを使用できますが、単純な(PowerShellの場合は)完全なタスクを記述する必要がある場合は、 )スクリプトが行います。
このTaskVariableを次のスクリプトで取得する "簡単な"方法がありますか、それとも "フルフリッチ"タスクのためのものですか?私の仕事に従うスクリプトに情報を渡すだけで、他にどのようなオプションがありますか?
ありがとう、それは完全に働いています(私はsetVariableが欠けて、ちょうどsetTaskVariableを見ました...)。 setVariableを使って$(testVar)を介してTaskConfigurationにアクセスするか、$ env:testVar :-)を介してPowerShellスクリプトに直接アクセスできます – huserben