2016-05-06 4 views
0

Я использую TFS 2015 Update 2 вместе с новой системой сборки/выпуска. У меня есть сценарий powershell, который я выполняю с помощью задачи Powershell. Эта задача выполняет сценарий powershell, который нуждается в доступе к переменной $ distribExecutionContext, которую я вижу во многих различных образцах кода VSTS Task.Получение DistributedTaskContext в пользовательском скрипте создания/выпуска TFS

Этот сценарий не является технически задачей, но вместо этого выполняется задачей Powershell, которая поставляется с TFS.

Независимо от того, что я делаю, я не вижу, чтобы получить переменную $ distributionExecutionContext. Он всегда равен нулю. Вот пример:

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

if($distributedTaskContext) 
{ 
    #... this never happens 
} 

ли эта переменная доступна только если PowerShell бежится в настоящее время работают в реальной задаче?

ответ

0

Задача powershell, используемая по умолчанию, запускает сценарий полностью как другой процесс, а переменная $distributedTaskContext недоступна для скрипта.

Доступно только для сценария powershell задачи.

Если вы собираетесь написать пользовательскую задачу, я бы хотел, чтобы вы использовали новый vsts-task-lib SDK, который значительно улучшает работу над старым SDK.

+0

Таким образом, нет возможности получить контекст задания «глубже», чем сама задача? I.e, внутри скрипта poweshell, выполняющего задачу Powershell? Я напишу настраиваемую задачу, если потребуется, но для большинства вещей достаточно простого сценария PowerShell, чтобы выполнить эту работу. В этом случае я хочу опубликовать некоторые результаты тестов обратно в TFS, и это сложно сделать без этого контекста. – RMD

+0

Я закончил тем, что просто написал расширение VSTS, и это обеспечило контекст. Команда TFS должна серьезно подумать над тем, чтобы позволить людям получать этот контекст в окружающем пространстве в любом скрипте, выполняемом агентом VS. – RMD

 Смежные вопросы

  • Нет связанных вопросов^_^