我需要获取未在我的计算机上映射的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'
是我们的域名。)
我确定用户名是正确的,他是工作区的所有者,工作区名称也是正确的。
更新
我发现了问题。最初我直接使用intelliSense导入了.dll。通过这种方式,我认为Visual Studio引用了随附的dll。 我试图删除所有这些并使用NuGet安装&#39; Microsoft.TeamFoundationServer.ExtendedClient&#39;,现在它可以工作了!
答案 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();
}
}
}