TFS二次开发

      因为公司使用Team Foundation Server来管理源代码但有时候需要一些小功能但是VS2010并未提供所以只能通过二次开发来实现一些特定的功能。本文就是通过介绍通过调用TFS2010API来进行一些简单的二次开发。

   开发前的准备:

           VS2010+TFS2010SDK(在安装TFS2010时自动就注册成全局的Assembly)

           在项目中添加引用 TFS2010的SDK,在项目上右键添加引用—>.Net 选项卡—>添加以下3个引用

   Microsoft.TeamFoundation
   Microsoft.TeamFoundation.Client
   Microsoft.TeamFoundation.VersionControl.Client

如果在添加引用时未发现这3个选择项,很有可能是该 项目属性中—>目标框架 不是.NET Framework 4。

其实如果没有装TFS2010或者.net 4.0的只是添加引用对应版本的TFS SDK即可,例如.net可以选择安装D:\Program Files\Microsoft Visual Studio 8\Common7\IDE\PrivateAssemblies\ 下的对应dll即可。

  二次开发之登录:

        二次开发操作就如同在VS中一样需要先登录后才能进行各种操作例如 获取签出文件,签入,获取最新版本等等。

        登录的SDK非常简单。

  //    端口号一般默认都是8080
  string tfsName = "http://***.***.***.***:8080";
  Microsoft.TeamFoundation.Client.TeamFoundationServer tfs =new Microsoft.TeamFoundation.Client.TeamFoundationServer(tfsName, new System.Net.NetworkCredential(“用户名", "密码", tfsName)
);

 

二次开发之获取当前签出项:

        由于TFS包含了BUG管理,报表,源代码管理等各种功能,所以在SDK中则各种功能体现在对应名称的DLL和类中。首先想要使用源代码管理功能,则需要先从刚才定义变量中获取源代码管理服务。代码如下

    

VersionControlServer versionControl =
   (VersionControlServer)tfs.GetService(typeof(VersionControlServer));

 

获取源代码管理功能后,我们调用

ItemSpec[] itemSpecs = new ItemSpec[1];
itemSpecs[0] = new ItemSpec(@"$/{这里包含TFS根目录下的根路径}/",RecursionType.Full);
PendingSet[] pendingSet =versionControl.QueryPendingSets(itemSpecs,"工作区名称",
                         "用户名",true);

  到这里我们就能获取到,你所指定的用户所在工作区中所有签出的文件。

 

二次开发之根据变更集获取文件路径


根据变更集获取文件,同获取签出项时的操作几乎一样,这里就不一一说明了
    首先,登录TFS
    其次,获取源代码管理功能
    然后调用
Changeset s = versionControl.GetChangeset(num, includeDownloadInfo, includeDownloadInfo);
即可获取,指定变更集中所有的文件,只有TFS路径,病人你签入时的本地路径。

 

二次开发之获取最新版本

 

首先,登录TFS
其次,获取源代码管理功能
然后,获取要获取路径的所在工作区

 

Microsoft.TeamFoundation.VersionControl.Client.Workspace ws = versionControl.GetWorkspace("工作区名称", versionControl.AuthenticatedUser);
 //最后,调用下载文件函数进行下载
 Item item = versionControl.GetItem("$/CRDS3/ClassReflection.cs");
 item.DownloadFile(ws.GetLocalItemForServerItem(item.ServerItem));


由于DownloadFile相当的坑爹即使是下载失败,也不会抛出任何异常。所以建议在下载后,加上检测文件最后修改,或者判断文件是否生成来确定是否下载成功过。

结尾:

 

  TFS二次开发可以说没有什么技术难度,唯一难度就是资料太少了我们无法得知该调用什么API来进行对应的操作。
以下是在进行这次二次开发时,主要的代码参考来源
http://blogs.microsoft.co.il/blogs/shair/archive/tags/TFS+API/default.aspx
最后付上源代码,使用时把TFSHandlercs.cs文件中GetTFSConfig()函数中的一些初始参数修改成你自己的对应的参数。

转载于:https://www.cnblogs.com/ksh-xy/archive/2011/12/29/2306616.html

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值