现在的位置: 首页 > 综合 > 正文

用C#显示Project2007+TFS2008结合后的实时项目进度

2013年05月16日 ⁄ 综合 ⁄ 共 7122字 ⁄ 字号 评论关闭
前期说明:在Project2007中可以选择一个团队项目(TFS),然后在Project2007中排好进度,作为工作项发布到TFS服务器上。之后可以直接作为工作项在VS2005等工具中填写项目进度。本文的目的就是要显示出TFS中保存的实时项目进度情况等。
技术说明:在Project2007之前的版本可以通过oledb的方式直接读取project的mpp文件来显示进度,在project2007时不再提供oledb的方式了,可能的两种实现方法有:
1、使用Project2007提供的COM接口,读取mpp文件中的任务 + TFS中的实时进度
2、把所有的进度安排(包括父任务)发布到TFS中,直接读取TFS中的实时进度

一、COM接口的方式

Code

这种方式我就不具体说了,可以看代码中的注释。采用这种方式有几个问题:
速度比较慢;b/s结构时有点问题;
经常报错:异常详细信息:   System.Runtime.InteropServices.COMException:   消息筛选器显示应用程序正在使用中。试了一些解决方案,好像都不行的。

二、直接读取TFS的方式
主意思路是:在TFS中定制一个新的工作项类型,其中包含一个新的工作项字段(项目分解结构);设置Project和TFS之间同步哪些字段,把新的字段包含进去;在Project中使用这个新的工作项类型;使用TFS SDK读出进度情况。
主要分成以下几个步骤进行:
(以下的command命令都是在VS2005命令提示窗口输入的)、
1、加入新的工作项类型
用以下命令导出原有的工作项类型:

witexport /"E:\scheduletask.xml" /http://server:8080/ /p projectname /"任务"

然后编辑这个xml文件,以下文件中红色的部分是修改的地方:

工作项类型

抱歉!评论已关闭.