无法使用 tfs API 在 c# 中检索 TFS 工作区

Can't retrieve TFS workspaces in c# with tfs API

我需要获取未映射到我的计算机上的 TFS 工作区的最新版本。

这是我的代码:

using (TfsTeamProjectCollection tfs = new TfsTeamProjectCollection(
    new Uri("http://tfs:8080/tfs/project"), 
    new NetworkCredential("tfs", "pwd")))
{
    tfs.EnsureAuthenticated();

    VersionControlServer vcs = tfs.GetService<VersionControlServer>();

    Workspace w = vcs.GetWorkspace("VM-TFS", vcs.AuthorizedUser);

    // Implement w.Get(.....)
}

问题是在 GetWorkspace() 我收到一个异常:"TF14061: the workspace VM-TFS;DELTA\tfs does not exist."(用户名前的 'DELTA' 是我们的域。)

我确定用户名是正确的,他是工作区的所有者,工作区名称也是正确的。

更新

我发现了问题。最初我直接用智能感知导入了 .dll。这样我就觉得Visual Studio引用了他自带的dll。 我尝试删除所有这些并使用 NuGet 安装 'Microsoft.TeamFoundationServer.ExtendedClient',现在它可以工作了!

我已经用下面的代码进行了测试,得到了成功的结果,你可以试试:

using Microsoft.TeamFoundation.Client;
using System;
using Microsoft.TeamFoundation.VersionControl.Client;

namespace GetLatest
{
    class Program
    {
        static void Main(string[] args)
        {
            TfsTeamProjectCollection tfs = new TfsTeamProjectCollection(new Uri("http://tfsserver:8080/tfs/TeamProjectCollection"));
            var versioncontrols = tfs.GetService<VersionControlServer>();
            var workspace = versioncontrols.GetWorkspace("test", versioncontrols.AuthorizedUser);
            workspace.Get();

        }
    }
}

我发现了问题。

最初我是直接用智能感知导入.dll。这样我觉得Visual Studio引用了他自带的dll。我尝试删除所有这些并使用 NuGet 安装 Microsoft.TeamFoundationServer.ExtendedClient,现在它可以工作了!