2013-04-11 5 views
3

J'essaye de mettre en file d'attente une construction de Powershell en spécifiant des paramètres de processus. Je reçois l'erreur suivante ... des idées que je fais mal?Impossible de trouver le type [Microsoft.TeamFoundation.Build.Workflow.WorkflowHelpers]

Impossible de trouver le type [Microsoft.TeamFoundation.Build.Workflow.WorkflowHelpers]: assurez-vous que l'ensemble contenant ce type est chargé.

At line:19 char:1
+ $ paramValues ​​= [Microsoft.TeamFoundation.Build.Workflow.WorkflowHelpers] :: Deseri ...
+ ~~~~~~~~~~~~~~~~~~~ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ~~~~~~~~~~~ + CategoryInfo: InvalidOperation: (Microsoft.TeamF ... WorkflowHelpers: TypeName) [], RuntimeException
+ FullyQualifiedErrorId:

TypeNotFound`
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]) 
     } 

    # SAS: Get the Build Server 
    $buildserver = Get-BuildServer "http://tfsserver:8080/tfs/My%20Project%20Collection" 

    # SAS: Set the parameters (Team Project and Build Definition) 
    $teamProject = "MyProject" 
    $buildDefinition = "MyBuildDefinition" 

    # SAS: Get the build definition 
    $definition = $buildserver.GetBuildDefinition($teamProject, $buildDefinition) 

    # SAS: Create the build request 
    $request = $definition.CreateBuildRequest() 

    # SAS: Deserialise the Process Parameter for the Build Definition 
    [System.Reflection.Assembly]::LoadWithPartialName("Microsoft.TeamFoundation.Build.Workflow") 
    $paramValues = [Microsoft.TeamFoundation.Build.Workflow.WorkflowHelpers]::DeserializeProcessParameters($request.ProcessParameters) 

    # SAS: Set the parameter(s) 
    $paramValues.Item("asdf") = "new value" 

    # SAS: Serialise the Process Parameter for the Build Definition 
    $request.ProcessParameters = [Microsoft.TeamFoundation.Build.Workflow.WorkflowHelpers]::SerializeProcessParameters($paramValues) 

    # SAS: Queue the build 
    $buildserver.QueueBuild($request, "None") 
+0

simple ... pas dans le GAC! Grrr! Merci quand même ... mais c'est résolu :-) – SuperSooty

+0

sur une nouvelle machine Windows 10 avec les outils électriques VS2015 et TFS pour 2015 avec Powershell J'ai été surpris de constater que les dll ne sont plus sous la version Program Files (x86) \ Visual studio mais à la place doit être référencé à partir de "Power Tools C: \ Program Files (x86) \ Team Team Server 2015" qui a résolu la même erreur pour moi. – rob

Répondre

1

pas dans le GAC ! Vous devez ajouter dll à GAC ou essayer

add-type -Path 'C:\Program Files (x86)\Microsoft Visual Studio 11.0\Common7\IDE\ReferenceAssemblies\v2.0\Microsoft.TeamFoundation.Build.Workflow.dll' 
Questions connexes