团队构建:即使删除构建代理上的所有工作区,路径“路径”也已映射到工作区“工作区”错误中

时间:2010-02-23 23:32:40

标签: team-build tfs workspace

我在构建队列时遇到此问题。构建模具出现错误

  

路径C:\ [Path] \ Sources已映射到工作区[服务器名称]。

same as this question。但是我通过运行以下命令删除了构建代理上的所有工作区:

tf workspaces /remove:*

并删除TFS缓存文件夹。我也重新启动了服务器,但每次构建都会发生错误。

9 个答案:

答案 0 :(得分:20)

好的,所以解决方案最终与YeahStu posted on here非常相似。我从

更改了Build Agent的工作目录
$(Temp)\UI\$(BuildDefinitionPath)

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

奇怪的是,我们拥有的另一个构建代理仍然在$(Temp)\UI\$(BuildDefinitionPath)中运行并且工作正常。两个代理之间的唯一区别是,如果安装了Visual Studio 2010 RC,那么停止工作的代理就会停止工作,而正在运行的代理程序上则有VS2010 Beta2。不知道为什么会有所作为。

答案 1 :(得分:4)

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

嗯,实际上这个问题已在本网站的其他几个问题中得到解决,但我会再次发布我的答案:)

此链接将引导您访问可能最快解决问题的博客

答案 2 :(得分:3)

我认为只有在一个构建框中有多个构建代理时才会出现问题。

答案 3 :(得分:1)

我认为你的问题可能与3个没有标记的构建代理有关。我认为工作空间(如果留下)将由正在进行构建的代理删除。如果它与创建工作区的代理程序不同,则会出现明显的问题。

因此,要解决此问题,您需要执行以下操作。 名称一个代理默认代理。这将没有标签。 在其他两个代理中,在属性中为代理添加一个标记,每个代理一个并选择该标记。

现在,任何没有设置标记的构建将始终使用默认代理。

要使构建使用其他代理之一,请打开构建定义并转到Process中的高级部分。

打开“代理设置”并在“标记过滤器”中选择省略号,然后为要使用的构建代理上输入的标记输入相同名称的标记。

您可能需要在首次运行之前清理工作区。

执行上述操作可以控制每个构建定义使用的构建代理,因此也应该停止工作区问题。

答案 4 :(得分:1)

我能够删除工作区。 在构建服务器上执行以下操作:

从sysinternals下载psExec http://technet.microsoft.com/en-us/sysinternals/bb897553

以管理员身份打开cmd。

运行psexec以将cmd打开为网络服务 psexec -i -u" nt authority \ network service" CMD.EXE 这打开了另一个cmd窗口,它是权限\网络服务"正在使用。

运行“whoami”以确保您现在已经拥有权限\网络服务"。

输入devenv打开visual studio。

在visual studio \ team explorer中,连接到源代码管理服务器

在visual studio \ source control explorer中,丢弃有问题的工作区。

我不知道为什么,但是tf workspaces / remove对我不起作用。

答案 5 :(得分:0)

有关工作目录属性的更多信息:

http://msdn.microsoft.com/en-us/library/bb399135.aspx

但是,在RTM版本中“$(HOMEDRIVE)”无法识别。可能是因为套管;没有测试过,所以要注意文档中的这个缺陷。

答案 6 :(得分:0)

我遇到了同样的问题 - 在我在构建代理上安装VS2010之前它运行正常。添加BuildDefinitionId修复了它,但奇怪的是安装VS2010会弄乱已经设置并运行的工作区。

答案 7 :(得分:0)

已更改为

  

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

使其正常工作但不适用于100%的情况。每次构建都无法完成时(例如源代码中的某些错误或某些内容),然后在修复错误并尝试再次运行团队构建之后,“工作区XYZ已经映射...”失败,那么我必须手动删除工作区映射“Team Foundation Sidekick 2010”并再次运行团队构建以获得成功。下次成功构建同一个团队构建时,会成功构建,但是在某些团队构建根据源代码中的某些错误失败之前,它会再次开始抛出“工作区映射”错误。

在我看来,当某些团队构建失败时,TFS 2010会出现一些错误,它不会清除/删除所使用的工作空间或类似的东西。

遇到同样的问题吗?

答案 8 :(得分:0)

==== Visual Studio 2010 ====

我无法在TFS Sidekick中看到“有问题的”工作空间,因此无法删除它们。 大卫·奥斯本(David Osborne)描述的步骤为我指明了正确的方向。我能够在TFS Sidekick中看到“有问题的”工作空间,最后我可以将其删除。

On the build server do this:

Download psExec from sysinternals.
http://technet.microsoft.com/en-us/sysinternals/bb897553

Open cmd as Administrator.

Run psexec to open cmd as Network Service.
psexec -i -u "nt authority\network service" cmd.exe That opens another cmd window that "nt authority\network service" is using.

Run a “whoami” to make sure you’re now "nt authority\network service".

Open visual studio by typing C:\Program Files (x86)\Microsoft Visual Studio 10.0\Common7\IDE\devenv.exe.

When asked use the login from the TFS buildagent account to start Visual Studio.

Within visual studio\team explorer, Connect to the source control server

Within visual studio\ source control explorer, throw away the offending workspaces.

Delete the "faulty" workspaces with TFS SideKick.

现在问题已解决。