TFS 构建服务器重复工作区

TFS build server duplicate workspaces

Exception Message: Unable to create the workspace '9_20_NAME' 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 D:\Builds\NAME is already mapped in workspace 9_22_NAME. (type MappingConflictException)
Exception Stack Trace:    at Microsoft.TeamFoundation.Build.Workflow.Activities.TfCreateWorkspace.Execute(CodeActivityContext context)
at System.Activities.CodeActivity`1.InternalExecute(ActivityInstance instance, ActivityExecutor executor, BookmarkManager bookmarkManager)
at System.Activities.Runtime.ActivityExecutor.ExecuteActivityWorkItem.ExecuteBody(ActivityExecutor executor, BookmarkManager bookmarkManager, Location resultLocation)

所以以上问题已经困扰我一个多星期了,从表面上看这似乎是一个简单的问题,删除或重命名工作区并继续。不过这个问题不会那么容易改变。

简而言之,我尝试了以下方法:

我几乎已经将问题缩小到 TFS 本身内部的某个问题,但尽管如此,我还是找不到问题所在。

值得注意的是,当我删除工作区(使用 TFS sidekicks)时,构建将 运行 多达几次。我还没有缩小导致从成功到失败变化的确切原因,但是我可以删除所有工作区然后 运行 构建几次没有问题然后突然这会回来(之前大约 2-3 个构建不断重复出现的故障)。

您需要转到构建机器,搜索使用相同构建定义名称的旧工作区,删除那个,以便构建可以再次创建具有相同名称的新工作区。查看此博客:https://mohamedradwan.wordpress.com/2015/08/25/unable-to-create-the-workspace-due-to-a-mapping-conflict/

另外,尝试将您的构建定义重命名为独特的名称,看看这是否能解决问题。 http://blog.casavian.eu/2014/04/02/build-workspace-issue/

我的解决方案是编辑构建定义 > 源设置 > 构建代理文件夹并将其从硬编码值更改为 $(SourceDir)。

一位团队成员向我指出了这个答案,但我 none 更清楚为什么此设置会导致此行为。