2013-10-19 79 views
6

這已經被問了很多,並且連續2天,我試圖解決,但沒有成功。我在Win7上運行TFS 2012 Express。我在該機器上安裝了VS Express版本。我可以檢查。我正在嘗試建立一個持續集成構建。TFS工作區映射衝突

但是,當我強制執行構建生成服務器上,我得到以下錯誤:

Unable to create the workspace '2_1_Server' due to a mapping conflict. You may need to manually delete an old workspace. You can get a list of workspaces on a computer with the command 'tf workspaces /computer:%COMPUTERNAME%'.

Details: The path C:\Builds\Finance is already mapped in workspace 1_1_Server. (type MappingConflictException)

(不知道這樣會很「C:\構建\財經」從....)

然後我嘗試它在我的開發機器上說的話,它要求我在構建服務器上登錄憑據。我進入他們,它告訴我:

enter image description here

這似乎很好,不是嗎?

在服務器上,檢查我的生成代理工作文件夾:

d:\Builds\$(BuildAgentId)\$(BuildDefinitionPath)

我不知道在哪裏的衝突。

有趣的是,如果我在同一臺服務器上加載不同的團隊項目,它會生成。我剛剛爲這個項目創建了一個構建定義,並且它似乎成功構建。我認爲這與構建定義有關,因爲這些項目已從另一臺TFS服務器遷移過來.....

任何人都可以協助嗎?

回答

13

安裝免費的工具Team Foundation Sidekicks,並用它通過工具刪除您的構建服務器的任何工作區>工作區的Sidekick(即與構建服務器的工作區中的搜索結果的計算機列名)。 (別擔心; TFS構建會重新創建它們):

然後去構建服務器上的d:\builds下的所有東西。

然後通過編輯其Source Settings選項卡下的每個構建def來檢查工作區映射,並確保它們使用$(SourceDir)作爲定義的每個映射的路徑的一部分。

如果構建具有硬編碼路徑而不是使用$(SourceDir)標記作爲根,它可能會解釋您所看到的行爲。

+1

爲Sidekick添加一個空白的「所有者名稱」以搜索所有所有者。我的所有者名稱最終被刪除爲需要刪除的工作區的「TFS2012服務」。 –