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

时间:2018-02-13 13:14:50

标签: c# .net tfs tfs-sdk

我需要获取未在我的计算机上映射的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'是我们的域名。)

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

enter image description here

更新

我发现了问题。最初我直接使用intelliSense导入了.dll。通过这种方式,我认为Visual Studio引用了随附的dll。 我试图删除所有这些并使用NuGet安装&#39; Microsoft.TeamFoundationServer.ExtendedClient&#39;,现在它可以工作了!

2 个答案:

答案 0 :(得分:2)

我发现了问题。

最初我直接使用intelliSense导入了.dll。通过这种方式,我认为Visual Studio引用了随附的dll。我试图删除它们并使用NuGet安装Microsoft.TeamFoundationServer.ExtendedClient,现在它可以工作了!

答案 1 :(得分:0)

我已经使用下面的代码进行了测试并获得了成功的结果,您可以尝试一下:

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();

        }
    }
}