简体   繁体   English

团队构建期间TFS 2013工作区映射错误

[英]TFS 2013 Workspace Mapping Error During Team Build

When we do team builds using tfs 2013 we occasionally get the following error: 当我们使用tfs 2013进行团队构建时,偶尔会出现以下错误:

Exception Message: Unable to create the workspace '41_9_UKBOLTFS6' 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 C:\xxx\xxx\xxx is already mapped in workspace 41_9_UKBOLTFS6. (type MappingConflictException)

If we kick off a new build it may succeed, if not we try again and eventually it works without any changes. 如果我们启动一个新的构建,它可能会成功,否则,我们会再试一次,最终它会在没有任何更改的情况下运行。

I have seen very similar questions posted on stackoverflow about this but non where the workspaces it is complaining about are the same '41_9_UKBOLTFS6'. 我已经在stackoverflow上看到了与此非常类似的问题,但是没有一个问题抱怨的工作空间是相同的'41_9_UKBOLTFS6'。

We migrated most of our builds from TFS2010 but not all and we never had this issue before. 我们从TFS2010迁移了大部分构建,但不是全部,并且以前从未遇到过此问题。

Does anyone know what is going on? 有人知道发生了什么吗?

This occurs (as the error suggests) when you have a workspace clash on the build server. 当构建服务器上发生工作空间冲突时,就会发生这种情况(错误提示)。 Workspaces are saved as configuration values in the TFS database so clashes are possibly caused by: 工作区作为配置值保存在TFS数据库中,因此冲突可能是由于:

  • you have created a new build definition with the same name as a previous build definition. 您已经创建了一个新的构建定义,其名称与先前的构建定义相同。
  • some part of your workspace name (or an artifact within your project) is over 260 chars 工作区名称的某些部分(或项目中的工件)超过260个字符
  • build definition is not using $(sourcedir) macro in System Settings tab 构建定义未使用“ 系统设置”选项卡中的$(sourcedir)

More details are explained in this article 本文介绍了更多详细信息

Possible work-around: 可能的解决方法:

Rename your build definition to something unique. 将构建定义重命名为唯一的名称。

Looks like you have multiple team builds mapped to the same local directory. 看来您有多个团队构建映射到同一本地目录。 Make sure that the Working Directory in all your agents are unique and there is no absolute path in workspace settings of your build definitions 确保所有代理中的工作目录都是唯一的,并且构建定义的工作空间设置中没有绝对路径

I've run to this issues and blogged about my solution without renaming the build definition. 我遇到了这个问题,并在不重命名构建定义的情况下就解决方案发表了博客。 Check it out here: https://christiaanmolendijk.nl/2016/05/23/before-stressing-out-tfs-cache-folder-on-build-server/ 在此处查看: https : //christiaanmolendijk.nl/2016/05/23/before-stressing-out-tfs-cache-folder-on-build-server/

Summary of the link: 链接摘要:

  1. Go to cache folder: {userprofile}\\AppData\\Local\\Microsoft\\Team Foundation\\{version}\\Cache 转到缓存文件夹: {userprofile}\\AppData\\Local\\Microsoft\\Team Foundation\\{version}\\Cache
  2. Edit file VersionControl.config in Volatile folder 在Volatile文件夹中编辑文件VersionControl.config
  3. Then go back to the cache folder at {userprofile}\\AppData\\Local\\Microsoft\\Team Foundation\\{version}\\Cache and delete the folders with a GUID as name. 然后返回到{userprofile}\\AppData\\Local\\Microsoft\\Team Foundation\\{version}\\Cache文件夹,并删除以GUID为名称的文件夹。

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM