TFS與MS Project之間通過它們欄位的對應檔一起工作。TFS允許我們使用這個對應檔自訂從TFS發布任務到MS Project的行為。
為了修改這個XML格式的對應檔,我們需要首先下載它,然後做必需的修改後再上傳回伺服器。
我們使用下面的命令代碼下載和上傳對應檔
TFSFieldMapping download TFSServer1 Application MapFile.xml
TFSFieldMapping upload TFSServer1 Application MapFile.xml
我們使用XML 映射元素實現MS Project和TFS之間域的映射。
映射元素處理幾個下面表格中幾個重要的屬性
| 屬性 |
描述 |
| WorkItemTrackingFieldReferenceName |
必填。指定工作項目域的引用名稱。 |
| ProjectField |
必填。指定Project域的名稱。指定預定義的以“pj”首碼開始的域的名稱。例如,任務名稱列為PjTaskName。指定自訂文本域列以pjTaskText開始,後跟一位元字,如:pjTaskText11。 |
| ProjectName |
選填。指定顯示在列中給使用者的名稱。如果該屬性沒有指定值,預設使用工作的網域名稱稱。 |
| ProjectUnits |
選填。指定映射到Project中的單位類型。合法的值分別是pjMinute, pjHour, pjDay, pjWeek和pjMonthUnit. |
| PublishOnly |
選填。如果設定為“true”,表明該列被發布到工作項目資料庫,但是不重新整理。此值主要被用於計算那些不需要在Team Explorer中被更新的域。如果設定為“no”,表明該域同時發布和重新整理。不設定時預設值為“no”。 |
<Mapping WorkItemTrackingFieldReferenceName="System.Title" ProjectField="pjTaskName"/>
如果某個域在MS Project中計算域,在TFS中最好設定成唯讀域,這樣它就不會在MS Project之外被修改而是在每次同步時發布。
上下文域是工作項目的別一種類型,它顯示任務的等級關係。例如,如果任務名稱為“Risk Plan”,它的子任務“Planning Rishs”的上下文域會讀到“Planning Risks > Risk Plan”。
<ContextField WorkItemTrackingFieldReferenceName="" />
其它類型的域有:連結和附件域,同步域。
為了確保域正確的在TFS和MS Project之間拷貝,我們需要保持域類型。下面是TFS和MS Project之間的類型對照。
| 工作項目域類型 |
Project域類型 |
| Integer |
Work, units, numbers, 及其它任何值範圍在 -2,147,483,648 到 2,147,483,647之間的域類型。 |
| Double |
Work, units, percentages, fractions, 及其它任何值範圍在 ±5.0 x 10-324 到 ±1.7 x 10308之間的域類型。 |
| String |
Text (最大字元數為255。) |
| DateTime |
Datetime. |
| TreePath |
Custom outline codes. |
| Html |
不支援。 |
| PlainText |
不支援。 |
| History |
不支援。 |
我們可以映射MS Project中任何域,只要它以pjTask開頭。
最後,我們需要再花一點時間在之前提到的下載和上傳域對應檔上。為了下載或上傳對應檔,我們需要使用TFSFieldMapping工具。還有,你必須是專案系統管理員組中的一員或者擁有編輯或查看項目級資訊許可權。此外,我們要有在本地路徑建立對應檔的許可權。
下載命令像這樣:
TFSFieldMapping download Team_Foundation_Server team_project MappingFile.xml
上傳命令像這樣:
TFSFieldMapping upload Team_Foundation_Server team_project MappingFile.xml
原文地址:http://tutorial.visualstudioteamsystem.com/details.aspx?item=40