25

当我排队构建时,我遇到了这个问题。构建因错误而死

路径 C:\[Path]\Sources 已映射到工作区 [Server Name]。

和这个问题一样。但是我通过运行以下命令删除了构建代理上的所有工作区:

tf workspaces /remove:*

并且还通过删除 TFS 缓存文件夹。我也重新启动了服务器,但每次构建时都会出现错误。

4

9 回答 9

20

好的,所以解决方案最终与 YeahStu在此处发布的内容非常相似。我将 Build Agent 的工作目录从

$(Temp)\UI\$(BuildDefinitionPath)

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

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

于 2010-02-26T04:46:43.297 回答
3

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

于 2011-01-13T19:35:45.467 回答
3

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

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

此链接将引导您到一个可能会最快解决您的问题的博客

于 2012-04-02T10:38:16.930 回答
1

我认为您的问题可能与 3 个未标记的构建代理有关。我认为工作区(如果留下)会被正在构建的代理删除。如果它与创建工作空间的代理不同,那么就会出现明显的问题。

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

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

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

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

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

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

于 2011-04-13T13:46:36.643 回答
1

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

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

以管理员身份打开 cmd。

运行 psexec 以将 cmd 作为网络服务打开。
psexec -i -u "nt authority\network service" cmd.exe 打开另一个“nt authority\network service”正在使用的cmd窗口。

运行“whoami”以确保您现在是“nt authority\network service”。

通过键入 devenv 打开 Visual Studio。

在 Visual Studio\Team Explorer 中,连接到源代码控制服务器

在 Visual Studio\源代码管理资源管理器中,丢弃有问题的工作区。

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

于 2015-03-27T18:58:22.500 回答
0

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

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

但是,在 RTM 版本中无法识别“$(HOMEDRIVE)”。可能是因为外壳;尚未对其进行测试,因此请注意文档中的该缺陷。

于 2010-04-29T13:34:27.333 回答
0

我遇到了同样的问题——它运行良好,直到我在构建代理上安装了 VS2010。添加 BuildDefinitionId 修复了它,但奇怪的是安装 VS2010 会弄乱已经设置和运行的工作区。

于 2010-05-18T09:16:18.743 回答
0

变成

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

使其工作,但不适用于 100% 的情况。每次构建无法完成时(例如源代码中的一些错误或其他东西),然后在修复错误并尝试再次运行团队构建后,它会在“工作区 XYZ 已映射 ...”上失败,然后我必须手动删除它“Team Foundation Sidekick 2010”的工作区映射并再次运行团队构建以取得成功。下一次多次执行相同的团队构建成功构建,但直到某些团队构建由于源代码中的某些错误而失败,然后它再次开始抛出“工作区映射”错误。

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

有人遇到同样的问题吗?

于 2011-01-13T15:42:14.160 回答
0

==== Visual Studio 2010 ====

我无法在 TFS Sidekick 中看到“故障”工作区,因此无法删除它们。大卫奥斯本描述的步骤为我指明了正确的方向。我能够在 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.

现在问题解决了。

于 2018-11-15T23:30:51.427 回答