Как установить пользовательский параметр сборки tfs с помощью powershell

Я использую PowerShell для автоматизации сборки TFS

    [Microsoft.TeamFoundation.Client.TfsTeamProjectCollection]$tfsc = [Microsoft.TeamFoundation.Client.TfsTeamProjectCollectionFactory]::GetTeamProjectCollection($TFSServer)
    $IBS = [Microsoft.TeamFoundation.Build.Client.IBuildServer]

    [Microsoft.TeamFoundation.Build.Client.IBuildServer] $buildserver = $tfsc.GetService($IBS)
    [Microsoft.TeamFoundation.Build.Client.IBuildDefinition] $BuildDef = $buildserver.GetBuildDefinition($Project,$Definition)
    [Microsoft.TeamFoundation.Build.Client.IBuildRequest] $BuildReq = $BuildDef.CreateBuildRequest();
    $buildserver.QueueBuild($BuildReq)

Мое определение сборки включает параметры, которые устанавливаются при постановке в очередь

Вопрос в том, как установить параметр Version and Publish из сценария PS?

Обновление: этот скрипт скрипт выполняет свою работу

[Microsoft.TeamFoundation.Client.TfsTeamProjectCollection]$tfsc = [Microsoft.TeamFoundation.Client.TfsTeamProjectCollectionFactory]::GetTeamProjectCollection($TFSServer)
$IBS = [Microsoft.TeamFoundation.Build.Client.IBuildServer]
[Microsoft.TeamFoundation.Build.Client.IBuildServer] $buildserver = $tfsc.GetService($IBS)
[Microsoft.TeamFoundation.Build.Client.IBuildDefinition] $BuildDef = $buildserver.GetBuildDefinition($Project,$Definition)
[Microsoft.TeamFoundation.Build.Client.IBuildRequest] $BuildReq = $BuildDef.CreateBuildRequest();
$processParameters = [Microsoft.TeamFoundation.Build.Workflow.WorkflowHelpers]::DeserializeProcessParameters($BuildReq.ProcessParameters)
$processParameters.Version = "8.4.1.TEST"
$processParameters.PublishToDevEnv = $false
$BuildReq.processParameters = [Microsoft.TeamFoundation.Build.Workflow.WorkflowHelpers]::SerializeProcessParameters($processParameters)
$buildserver.QueueBuild($BuildReq)

1 ответ

Решение

Вы можете попробовать это:

Add-Type -Path "C:\Program Files (x86)\Microsoft Visual Studio 12.0\Common7\IDE\ReferenceAssemblies\v2.0\Microsoft.TeamFoundation.Build.Workflow.dll"
Add-Type -Path $PathToCustomBuildActivities
$processParameters = [Microsoft.TeamFoundation.Build.Workflow.WorkflowHelpers]::DeserializeProcessParameters($BuildDef.ProcessParameters)
$processParameters.Version = "foo"
$processParameters.PublishToDevEnv = "bar"
$BuildDef.processParameters = [Microsoft.TeamFoundation.Build.Workflow.WorkflowHelpers]::SerializeProcessParameters($processParameters)
Другие вопросы по тегам