我是Team Foundation Server的新手,我正在尝试使用c#以编程方式连接到项目。我有以下代码块...
string serverName = "http://tfs01:8080";
TeamFoundationServer tfs = new TeamFoundationServer(serverName);
VersionControlServer version = (VersionControlServer)tfs.GetService(typeof (VersionControlServer));
Workspace workspace = version.GetWorkspace("Test", version.AuthenticatedUser);
MessageBox.Show(workspace.Name);
当我执行代码时,收到以下错误......
TF14061: The workspace Test;vercuskis does not exist.
“测试”项目不在根目录下,并且可以从VS 2008团队资源管理器中访问,我有安全访问权限,而且我用它来检查和输出代码就好了
我不确定我的代码中是否正确引用了“Test”项目。我正在寻找一个如何从TFS根目录引用项目名称的示例。
谢谢,
答案 0 :(得分:6)
问题是上面代码中的“Test”是指TFS工作区,而不是TFS中的项目。 TFS使用一种名为workspaces的想法,将目录和项目映射到。
您正在使用的工作区在源代码管理浏览器windwo中显示在顶部。它说:'Workspace:',然后是您正在使用的工作区的名称。
以下是有关工作空间的良好资源:http://www.woodwardweb.com/teamprise/000333.html
然后您可能需要从TFS获取一些文件夹映射。 TFS文档很少,我用它完成的大部分工作都需要一些试验和错误才能理解TFS的工作原理,以及API与Visual Studio中使用源代码管理资源管理器的不同之处。
答案 1 :(得分:0)
如果您只想查询版本控制系统的历史信息而不检查/签出任何文件,则根本不需要工作区。只需使用VersionControlServer对象。
答案 2 :(得分:0)
我有同样的问题,我相信这是因为VS的WorkSpace映射了多个项目。所以我创建了一个只有一个映射项目的新WorkSpace。
我的解决方案:
从VS打开CMD
运行波纹管线:crn
像这样:
tf workspace /new /s:http://tfs2010.server.com:8080/tfs
系统将提示您设置新的WorkSpace:
名称:您喜欢的工作区名称(没有空格或特殊字符)
源控制文件夹:C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC>tf workspace /new /s:http://tfs2010.server.com:8080/tfs
本地文件夹:$/FolderName
在您的代码中使用输入的WorkSpace名称
C:\FolderName