2010-02-23 40 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