我是 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 Team Explorer 中看到,我确实可以安全访问它,并且可以使用它来签入和签出代码。

我不确定我的代码中是否正确引用了“测试”项目。我正在寻找如何从 TFS 根引用项目名称的示例。

谢谢你,

有帮助吗?

解决方案

的问题是,上述的“试验”在代码是指工作空间TFS,而不是在TFS项目。 TFS使用一个想法称为工作,你的目录和项目映射到。

您使用在源控制资源管理器被示出工作空间朝向顶部windwo。它说:“工作空间:”到那时你正在使用的工作区的名称

下面是关于工作区一个很好的资源: http://www.woodwardweb.com/teamprise/ 000333.html

您接着会需要大概从TFS得到一些文件夹映射为好。该TFS载文是稀疏,很多我都用它做的工作,需要一些试验和错误理解TFS是如何工作的,以及API是如何从使用Visual Studio中的源代码控制管理不同。

其他提示

就像布莱恩所说,你对工作空间是什么感到困惑。他的链接很好: http://www.woodwardweb.com/teamrise/000333.html

如果您只想查询有关版本控制系统的历史信息而不签入/签出任何文件,则根本不需要工作区。只需使用 VersionControlServer 对象即可。

  • QueryItems =“tf 目录”
  • QueryItemsExtended = "tf 属性"
  • QueryPendingChanges = "tf 状态"
  • QueryHistory = "tf History" -- 请注意,枚举会导致额外的服务器往返 收益率回报
  • 等等等等

我有同样的问题,我相信这是因为从VS工作台与多个项目映射。所以,我创建了一个新的工作区,只有一个映射项目。

我的工作溶液: 从打开的VS CMD 运行在波纹管线:tf workspace /new /s:http://tfs2010.server.com:8080/tfs

像这样:

C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC>tf workspace /new /s:http://tfs2010.server.com:8080/tfs

您将被提示安装新的工作区: 名称:工作区名称你喜欢(无空格或特殊字符) 源代码控制的文件夹:$/FolderName 本地文件夹:C:\FolderName

使用在输入的工作区名称在你的代码

    this._server = config.GetAttribute("server");
    **this._workspace = config.GetAttribute("workspace");**
    this._user = config.GetAttribute("user");
    this._password = config.GetAttribute("psw");
    TeamFoundationServer tfs = new TeamFoundationServer(this._server, new System.Net.NetworkCredential(this._user, this._password));
    tfs.Authenticate();
    VersionControlServer versionControl = (VersionControlServer)tfs.GetService(typeof(VersionControlServer));
    Workspace ws = versionControl.GetWorkspace(this._workspace, this._user);
许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top