I was doing some testing on TFS and got fed up queuing new builds via right-click -> queue new build -> ok. So here is a powershell script that can be used to kick off a build.
I’ve included some extra assemblies that don’t need to be used as I have other functions that do use them in the same module file. example useage below
Queue-TFSBuild -TFSServer http://tfsserver:8080/tfs/col -Project Project1 -Definition DailyBuild
$arrAssemblies = @( "Microsoft.TeamFoundation.Client", "Microsoft.TeamFoundation.Common", "Microsoft.TeamFoundation.Build.Client", "Microsoft.TeamFoundation.Build.Workflow", "Microsoft.TeamFoundation.VersionControl.Client" ) Foreach ($assembly in $arrAssemblies) { [void][Reflection.Assembly]::LoadWithPartialName($assembly) } Remove-Variable assembly, arrAssemblies Function Queue-TFSBuild { [CmdLetBinding()] Param ( [Uri]$TFSServer, [String]$Project, [String]$Definition ) Process { [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) } }