Как поставить в очередь другую сборку TFS (2012) из сборки TFS И передать параметры процесса?
Продукт, над которым я работаю, включает в себя 3/4 отдельных (независимых) сборок TFS.
Я хотел бы создать одну сборку TFS, которая ставит в очередь другие сборки 3/4 из ProcessTemplate И, что очень важно, передает им параметры процесса. Эта сборка будет ждать их завершения и вернуть общий успех / неудачу сборки.
Итак, мои вопросы:
Может ли это быть достигнуто любым существующимстандарт» Действия рабочего процесса (у моего менеджера был плохой опыт с пользовательскими действиями рабочего процесса)?Если нет, я могураскошеливаться' к PowerShell. Могу ли я достичь того, чего хочу, в Powershell (доступ к API)?Может быть, с помощью TFSBuild.exe? Но я могу'не могу найти способ передачи пользовательских параметров процесса, которые мне нужны.Любая помощь или рекомендации будут оценены.
ОБНОВИТЬ Следующий скрипт powershell выполнит сборку, но яЯ до сих пор в растерянности, чтобы иметь возможность передать мои пользовательские параметры процесса :-(
function Get-BuildServer
{
param($serverName = $(throw 'please specify a TFS server name'))
[void][System.Reflection.Assembly]::LoadWithPartialName("Microsoft.TeamFoundation.Client")
[void][System.Reflection.Assembly]::LoadWithPartialName ("Microsoft.TeamFoundation.Build.Client")
$tfs = [Microsoft.TeamFoundation.Client.TeamFoundationServerFactory]::GetServer($serverName)
return $tfs.GetService([Microsoft.TeamFoundation.Build.Client.IBuildServer])
}
$buildserver = Get-BuildServer "http://tfsserver:8080/tfs/My%20Project%20Collection"
$teamProject = "ESI"
$buildDefinition = "iPrl_BuildMaster"
$definition = $buildserver.GetBuildDefinition($teamProject, $buildDefinition)
$request = $definition.CreateBuildRequest()
$buildserver.QueueBuild($request, "None")
Теперь, после поиска в Google, я нашел следующий код C # для обновления многословия и, предполагая, чтоТо же самое для моих пользовательских параметров процесса, мне нужно преобразовать это для работы с вышеупомянутым сценарием PowerShell. Есть идеи?
IDictionary paramValues = WorkflowHelpers.DeserializeProcessParameters(processParameters);
paramValues[ProcessParameterMetadata.StandardParameterNames.Verbosity] = buildVerbosity;
return WorkflowHelpers.SerializeProcessParameters(paramValues);