2014-10-09 29 views
0


我是TFS的新手,刚刚在TFS世界的最后几天进行了第一次潜水(可以说我对TFS的知识直到现在,仅限于阅读博客,MSDN并通过几本书快速阅读)。目前,我已经有了一项任务来扩展由另一个开发人员完成的资源库浏览器控制(所提到的TFS SDK版本为2010)。此控件的主要目的是列出给定路径下的所有内容。在我进入这个之前,我有几个想要澄清的问题;TFS SDK 10.0与TFS服务器的兼容性版本和没有本地工作区的锁定项目

  1. 我能否使用2010 SDK连接到TFS 2010,2012和2013服务器,而无需根据服务器版本切换到较新的SDK版本?
  2. 我还想在我的控制中实现一些允许用户使用的命令;

    • 将标签应用于文件/文件夹
    • 锁定/解锁文件
    • 一个文件夹下创建一个子目录
    • 删除文件/文件夹

      我想知道,我是否可以在没有本地工作区映射的情况下执行这些命令(类似于TortoiseSvn Repo浏览器,可以在没有本地工作副本的情况下锁定/解锁或删除文件/文件夹)。

谢谢!

回答

0
  1. 这取决于您打电话的API的哪一部分。有些东西会向后兼容,而无需重新编译。有些东西需要引用TFS API二进制文件的较新版本,有些东西需要重新编写,因为某些对象和方法已在新版本的TFS中被弃用。这确实是一个广泛的问题。

编辑:你想花一些时间去了解TFS API文档:如果你主要关心的版本控制操作,那么你想成为朋友Microsoft.TeamFoundation.VersionControl.ClientMicrosoft.TeamFoundation.VersionControl.Common然后回来的时候,你有更多的关于代码实现的具体细节。

  1. 不,如果你想操纵Source Control中的文件,你需要有一个工作区。在TFS 2012及更高版本中,有2种工作区,服务器工作区跟踪TFS服务器上的更改,您必须明确检出文件才能对其进行修改。本地工作区更像SVN并在本地跟踪更改。 TFS 2010仅支持服务器工作区。除此之外,TFS 2013允许您在TFS中托管Git存储库,但是您无法在TFSVC和Git之间混用并匹配,因此您需要在创建团队项目时决定需要哪一个。您可能会使用包装TFSVC的SVN Bridge,以便可以使用Tortoise工具调用它,但是这会给您的解决方案增加很多复杂性,可能更容易让API创建工作区。

编辑:再次调用API都在那里,我没有做太多的工作在这个空间,但在Microsoft.TeamFoundation.VersionControl.Server命名空间中的Item.QueryItem Method是一个良好的开端。

+0

非常感谢@James Reed。至于问题1,我的代码通常处理API的客户端部分,基本上是版本控制部分,以便用户执行诸如签入,签出,锁定解锁等基本操作,我希望这有助于。我想提供更多关于问题2的信息,有没有什么方法可以列出某个项目下的内容,类似于Web访问界面中显示的内容(我假设不管工作空间映射如何,都会列出内容。 – 2014-10-10 11:50:20

+0

在答案中增加了一些细节 – 2014-10-10 13:46:54

+0

Thanks @James。正如我前面所说,我正在开发早期开发人员离开它的开发,我认为早点决定是否会更好,是否需要使用更新的SDK我现在的计划是使用当前引用的版本(10.0),如果我移动到更新的版本,它会影响任何现有的功能。并且向前移动,因为我没有足够的积分,所以我无法对答案投上赞成票,因此在等待几天后才会将您的答复标记为已接受。 – 2014-10-13 08:39:21

相关问题