Visual studio 2017 找不到类型[Microsoft.TeamFoundation.Client.TeamFoundationServerFactory]

Visual studio 2017 找不到类型[Microsoft.TeamFoundation.Client.TeamFoundationServerFactory],visual-studio-2017,tfsbuild,gac,Visual Studio 2017,Tfsbuild,Gac,我试图在TFS上建立一个构建,通过使用一个同事以前编写并使用的PowerShell脚本,在不同的TFS集合中启动另一个构建。然而,这个脚本是在VS 2015 Professional上编写和测试的,我使用的是2017 Enterprise。当我在构建中运行此脚本时,出现以下错误: Unable to find type [Microsoft.TeamFoundation.Client.TeamFoundationServerFactory] 当它击中这个: $tfs = [Microsoft.

我试图在TFS上建立一个构建,通过使用一个同事以前编写并使用的PowerShell脚本,在不同的TFS集合中启动另一个构建。然而,这个脚本是在VS 2015 Professional上编写和测试的,我使用的是2017 Enterprise。当我在构建中运行此脚本时,出现以下错误:

Unable to find type [Microsoft.TeamFoundation.Client.TeamFoundationServerFactory]
当它击中这个:

$tfs = [Microsoft.TeamFoundation.Client.TeamFoundationServerFactory]::GetServer($serverName)
我已在
C:\Program Files(x86)\Microsoft Visual Studio\2017\Enterprise\Common7\IDE\CommonExtensions\Microsoft\TeamFoundation\Team Explorer
中查看了.dll,但找不到此dll(可能特定于Professional 2015?)


我将如何着手解决这个问题?根据我的研究,似乎我需要将dll添加到GAC中,但不确定要添加哪个dll。如果此dll未与Enterprise 2017关联,我将如何更改此行以使用我的版本?

安装NuGet软件包。

对象模型客户端库不在GAC中

通过如下所示的
Add Type
cmdlet添加要加载的dll:(在您的场景中,您需要添加
Microsoft.TeamFoundation.Client.dll

看看脚本是否有用。这种方法不需要二进制文件

您可以根据自己的需求自定义此选项


另外,它适用于TFS 2017.1

只有VS 2015组件在同样的情况下帮助了我。。。 添加顺序也很重要

    try
{

    $visualStudiopath = 'C:\Program Files (x86)\Microsoft Visual Studio 14.0\Common7\IDE\CommonExtensions\Microsoft\TeamFoundation\Team Explorer'

    Add-Type -Path "$visualStudiopath\Microsoft.TeamFoundation.WorkItemTracking.ControlsCore.dll"
    Add-Type -Path "$visualStudiopath\Microsoft.TeamFoundation.WorkItemTracking.Client.QueryLanguage.dll"
    Add-Type -Path "$visualStudiopath\Microsoft.TeamFoundation.ProjectManagement.dll"
    Add-Type -Path "$visualStudiopath\Microsoft.TeamFoundation.WorkItemTracking.WebApi.dll"
    Add-Type -Path "$visualStudiopath\Microsoft.TeamFoundation.WorkItemTracking.Client.dll"
    Add-Type -Path "$visualStudiopath\Microsoft.TeamFoundation.WorkItemTracking.Common.dll"
    Add-Type -Path "$visualStudiopath\Microsoft.TeamFoundation.VersionControl.Client.dll"
    Add-Type -Path "$visualStudiopath\Microsoft.TeamFoundation.Common.dll"
    Add-Type -Path "$visualStudiopath\Microsoft.TeamFoundation.WorkItemTracking.Client.DataStoreLoader.dll"
    Add-Type -Path "$visualStudiopath\Microsoft.TeamFoundation.WorkItemTracking.Controls.dll"
    Add-Type -Path "$visualStudiopath\Microsoft.TeamFoundation.WorkItemTracking.Proxy.dll"
    Add-Type -Path "$visualStudiopath\Microsoft.TeamFoundation.Client.dll"
    Add-type -path "$visualStudiopath\Microsoft.TeamFoundation.ProjectManagement.dll"
    Add-Type -Path "$visualStudiopath\Microsoft.TeamFoundation.Build.Common.dll"
}
catch [System.Reflection.ReflectionTypeLoadException]
{
   Write-Host "Message: $($_.Exception.Message)"
   Write-Host "StackTrace: $($_.Exception.StackTrace)"
   Write-Host "LoaderExceptions: $($_.Exception.LoaderExceptions)"
}

我在一台离线机器上工作,你知道我可以使用什么资源离线安装吗?谢谢,这解决了我的问题:)我不知道OP,但我正处于他们描述的场景中。我已经测试了您的解决方案,但系统仍然找不到Microsoft.TeamFoundation.Client.TeamFoundationServerFactory。是否还有其他步骤可以帮助解决此问题?
    try
{

    $visualStudiopath = 'C:\Program Files (x86)\Microsoft Visual Studio 14.0\Common7\IDE\CommonExtensions\Microsoft\TeamFoundation\Team Explorer'

    Add-Type -Path "$visualStudiopath\Microsoft.TeamFoundation.WorkItemTracking.ControlsCore.dll"
    Add-Type -Path "$visualStudiopath\Microsoft.TeamFoundation.WorkItemTracking.Client.QueryLanguage.dll"
    Add-Type -Path "$visualStudiopath\Microsoft.TeamFoundation.ProjectManagement.dll"
    Add-Type -Path "$visualStudiopath\Microsoft.TeamFoundation.WorkItemTracking.WebApi.dll"
    Add-Type -Path "$visualStudiopath\Microsoft.TeamFoundation.WorkItemTracking.Client.dll"
    Add-Type -Path "$visualStudiopath\Microsoft.TeamFoundation.WorkItemTracking.Common.dll"
    Add-Type -Path "$visualStudiopath\Microsoft.TeamFoundation.VersionControl.Client.dll"
    Add-Type -Path "$visualStudiopath\Microsoft.TeamFoundation.Common.dll"
    Add-Type -Path "$visualStudiopath\Microsoft.TeamFoundation.WorkItemTracking.Client.DataStoreLoader.dll"
    Add-Type -Path "$visualStudiopath\Microsoft.TeamFoundation.WorkItemTracking.Controls.dll"
    Add-Type -Path "$visualStudiopath\Microsoft.TeamFoundation.WorkItemTracking.Proxy.dll"
    Add-Type -Path "$visualStudiopath\Microsoft.TeamFoundation.Client.dll"
    Add-type -path "$visualStudiopath\Microsoft.TeamFoundation.ProjectManagement.dll"
    Add-Type -Path "$visualStudiopath\Microsoft.TeamFoundation.Build.Common.dll"
}
catch [System.Reflection.ReflectionTypeLoadException]
{
   Write-Host "Message: $($_.Exception.Message)"
   Write-Host "StackTrace: $($_.Exception.StackTrace)"
   Write-Host "LoaderExceptions: $($_.Exception.LoaderExceptions)"
}