在线时间:8:00-16:00
迪恩网络APP
随时随地掌握行业动态
扫描二维码
关注迪恩网络微信公众号
技术说明:在Project2007之前的版本可以通过oledb的方式直接读取project的mpp文件来显示进度,在project2007时不再提供oledb的方式了,可能的两种实现方法有: 1、使用Project2007提供的COM接口,读取mpp文件中的任务 + TFS中的实时进度 2、把所有的进度安排(包括父任务)发布到TFS中,直接读取TFS中的实时进度 一、COM接口的方式
}
这种方式我就不具体说了,可以看代码中的注释。采用这种方式有几个问题:速度比较慢;b/s结构时有点问题; 经常报错:异常详细信息: System.Runtime.InteropServices.COMException: 消息筛选器显示应用程序正在使用中。试了一些解决方案,好像都不行的。 二、直接读取TFS的方式 主意思路是:在TFS中定制一个新的工作项类型,其中包含一个新的工作项字段(项目分解结构);设置Project和TFS之间同步哪些字段,把新的字段包含进去;在Project中使用这个新的工作项类型;使用TFS SDK读出进度情况。 主要分成以下几个步骤进行: (以下的command命令都是在VS2005命令提示窗口输入的)、 1、加入新的工作项类型 用以下命令导出原有的工作项类型: 然后编辑这个xml文件,以下文件中红色的部分是修改的地方:
>
然后用以下命令把它加入到tfs中去:
witimport /f "E:\\scheduletask.xml" /t "http://server:8080/" /p projectname
这样我们就增加了一个新的工作项类型:进度,和一个新的工作项字段:Microsoft.VSTS.Scheduling.WBS2、确定TFS和project之间可以同步哪些字段 首先下载原有配置:
TFSFieldMapping.exe download http://server:8080 projectname "E:\MappingFile.xml"
在原有配置上修改,见红色部分:
TFSFieldMapping.exe upload http://server:8080 projectname "E:\MappingFile.xml"
这样就把TFS字段和project中的指定字段对应起来了三、在project中使用"进度"工作项类型 这一步比较简单,就是在project中选择团队项目,排计划时选择"进度"类型,然后发布到tfs中就可以了 四、使用tfs SDK读取进度 就是使用TFS SDK就可以了:
private void BindTfs()
} 附: 在浏览所有进度时出现问题:拒绝访问(The work item does not exist, or you do not have permission to access it. ) 原因:tfs装的是90天测试版,在过期时把日期改为之前两个月了,导致进度这个工作项的加入时间和系统时间有冲突,将系统时间改为工作项加入之后的时间,重启iis就可以了 |
请发表评论