3

我正在尝试从指定进程参数的 Powershell 对构建进行排队。我收到以下错误...任何想法我做错了什么?

无法找到类型[Microsoft.TeamFoundation.Build.Workflow.WorkflowHelpers]:确保已加载包含此类型的程序集。

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") 
4

1 回答 1

1

不在 GAC 中!您需要将 dll 添加到 GAC 或试试这个

add-type -Path 'C:\Program Files (x86)\Microsoft Visual Studio 11.0\Common7\IDE\ReferenceAssemblies\v2.0\Microsoft.TeamFoundation.Build.Workflow.dll'
于 2015-05-19T18:06:07.597 回答