2010-02-23 43 views
24

我在排隊構建時遇到此問題。構建模塊出錯團隊建設:即使刪除構建代理上的所有工作空間後,路徑「路徑」已映射到工作空間「工作空間」錯誤

路徑C:\ [Path] \ Sources已經映射到工作區[Server Name]中。

the same as this question。通過刪除TFS緩存文件夾

tf workspaces /remove:* 

也:但我已經運行以下命令刪除上生成代理所有的工作區。我也重新啓動了服務器,但每次構建都會發生錯誤。

+1

我很確定上面的命令行只會刪除當前用戶的工作空間,所以仍可能有一個工作空間與另一個用戶(在該機器上)已經映射了相同路徑的工作空間相關聯。 您可以使用TFS Sidekicks輕鬆查看與給定客戶機關聯的所有工作區。(對不起,如果我教你吸雞蛋!) – JamesD 2010-02-26 17:47:12

回答

20

好的,所以解決方案最終與YeahStu posted on here相似。我改變了生成代理的工作目錄從

$(Temp)\UI\$(BuildDefinitionPath) 

$(Temp)\UI\$(BuildDefinitionPath)\$(BuildDefinitionID) 

奇怪的是,我們有其他構建代理$(Temp)\UI\$(BuildDefinitionPath)仍在運行和正常工作。這兩個代理之間的唯一區別是停止工作的代理安裝了Visual Studio 2010 RC,而仍在工作的代碼上有VS2010 Beta2。不知道爲什麼這應該有所作爲。對這裏的工作目錄屬性

+2

這幫了我。我在構建代理上安裝了VS2010 Ultimate(RTM),並立即開始失敗。謝謝! – Paul 2010-09-10 18:06:31

0

我有同樣的問題 - 它運行良好,直到我在生成代理上安裝VS2010。添加BuildDefinitionId修復了它,但奇怪的是安裝VS2010會弄亂已經設置和運行的工作區。

0

改爲

$(TEMP)\ UI \ $(BuildDefinitionPath)\ $(BuildDefinitionID)

使它工作,但不是100分%的情況。每次構建失敗時(例如源代碼中的某些錯誤),然後在修復錯誤並嘗試再次運行團隊構建後,它在「Workspace XYZ已映射...」上失敗,然後我必須手動刪除此「Team Foundation Sidekick 2010」的工作區映射,並再次運行團隊構建以取得成功。下一次執行相同的團隊構建不止一次會成功構建,但是直到某些團隊構建根據源代碼中的某些錯誤而失敗時,它再次開始拋出「工作區映射」錯誤。

在我看來,TFS 2010在某些團隊構建失敗,沒有清除/刪除使用的工作空間或類似的東西時存在一些錯誤。

有沒有人遇到同樣的問題?

3

我認爲只有在一個構建框上有多個構建代理時,纔會出現該問題。

+0

我有3個代理分配給1個控制器。你認爲這可能是問題嗎? – psulek 2011-01-15 15:59:11

+0

這確實是我的問題。我將我的兩個構建代理設置爲使用單獨的工作副本,並且它消失了。 – 2017-02-10 10:22:25

1

我認爲你的問題可能與3個沒有標記的構建代理有關。我認爲工作區如果被遺忘,會被正在進行構建的代理刪除。如果它是創建工作空間的代理的不同代理,那麼會出現明顯的問題。

所以要解決此問題,您需要執行以下操作。 名稱一個代理默認代理。這將沒有標籤。 在其他兩個代理中,在屬性中爲代理添加一個標記,爲每個代理添加一個標記並選擇它。

現在任何沒有標記集的執行構建將始終使用默認代理。

要讓構建使用其他代理之一,請打開構建定義並轉到Process中的高級部分。

打開代理設置,然後在代碼過濾器中選擇省略號,然後爲您要使用的構建代理輸入的標記輸入相同名稱的標記。

您可能需要在第一次運行之前清理工作區。

通過執行上述操作,您可以控制每個構建定義使用哪個構建代理,因此也應該停止工作空間問題。

4

http://www.devaffair.com/2011/11/path-is-already-mapped-in-workspace.html

嗯,其實這個問題已經在這個網站其他幾個問題解決了,但我會再發布我的答案:)

此鏈接將引導您到博客裏面大概會最快解決您的問題

+0

Thx爲鏈接 – 2013-03-28 20:47:06

+0

鏈接被破壞... :( – Felix 2016-03-20 09:46:26

+0

@Felix http://blog.devaffair.com/2011/11/path-is-already-mapped-in-workspace.html – Devaffair 2016-03-21 16:57:54

1

我能夠刪除工作區。 在構建服務器上執行以下操作:

從sysinternals下載psExec。
http://technet.microsoft.com/en-us/sysinternals/bb897553

以管理員身份打開cmd。

運行psexec以打開cmd作爲網絡服務。
psexec -i -u「權限\網絡服務」cmd.exe 打開另一個「nt authority \ network service」正在使用的cmd窗口。

運行「whoami」以確保您現在是「nt authority \ network service」。

通過鍵入devenv打開visual studio。

在Visual Studio中\團隊資源管理器,連接到源代碼管理服務器

在Visual Studio中\源代碼控制管理,扔掉違規的工作區。

我不知道爲什麼,但tf工作區/刪除不適合我。

+0

這是最好的解決方案。 – 2015-05-04 11:05:31