无法创建工作区''由于映射冲突

时间:2015-06-03 17:25:57

标签: build-process tfs2013

我使用的是TFS 2013 Build Server。

获得以下错误 例外消息:无法创建工作区''由于映射冲突。您可能需要手动删除旧工作区。您可以使用命令“计算机工作空间/计算机:%COMPUTERNAME%'”在计算机上获取工作空间列表。 详细信息:路径F:\ GDC \ Bin已映射到工作区''。 (类型MappingConflictException)

我有多个构建定义,它引用了常见的二进制文件夹

Source Setting for Build definition BD1
  Source Control Folder                  Build Agentfolder
  $/Common                               F:\GDC\Bin
  $/Project1                             $(SourceDir)

Source Setting for Build defination BD2
  Source Control Folder                  Build Agentfolder
  $/Common                               F:\GDC\Bin
  $/Project2                             $(SourceDir)

Source Setting for Build definition BD3
  Source Control Folder                  Build Agentfolder
  $/Common                               F:\GDC\Bin
  $/Project3                             $(SourceDir)

6 个答案:

答案 0 :(得分:8)

当您在构建服务器上发生工作区冲突时,会发生这种情况(如错误所示)。工作区在TFS数据库中保存为配置值,因此冲突可能由以下原因引起:

  • 您已创建了一个与之前构建定义同名的新构建定义。
  • 工作区名称的某些部分(或项目中的工件)超过260个字符
  • 构建定义未在系统设置标签
  • 中使用$(sourcedir)

更详细信息在this article

中说明

解决方法:

将构建定义重命名为唯一的。

答案 1 :(得分:1)

我是这样做的:

  1. 首先,尝试列出相关服务器上的工作区。我尝试了Visual Studio UI和命令提示符:tf workspaces / computer:。 “例外”消息中提到的工作区未显示在列表中。

  2. http://www.attrice.info/downloads/下载并安装了Team Foundation Sidekicks

  3. 当应用安装,打开并连接到tfs服务器时。

    Screenshot1

  4. 从下拉列表中选择计算机名称,从下拉列表中清除所有者名称(非常重要!)下拉列表,并将上次访问日期更改为几年前的日期。

    Screenshot2

  5. 点击搜索按钮。出现了工作区列表。 这次我可以看到“异常”消息中提到的工作区。

  6. 选择“例外”消息中提到的工作区,然后单击“删除”按钮。

  7. 看来当我登录构建服务器并询问工作区列表时,tfs只显示我所属的工作区。构建进程创建的临时工作空间未分配给我,因此我无法看到它们。 Team Foundation Sidekicks 2015确实向我展示了所有的工作空间。

    注意:我在本练习中使用了 TFS2015

答案 2 :(得分:0)

所以你有一个工作区冲突。 解决此问题的最简单方法是删除工作区并重新进行修复。

您需要使用TF工具。

TF /工作区/删除....

有一个TFS sidekicks工具,应该能够通过GUI为您完成此任务。

http://www.attrice.info/cm/tfs/

答案 3 :(得分:0)

原因是(对我而言)我克隆了构建定义。所以每个" Build Agend Folder"在“源设置”中指向同一目标文件夹。

解决方案是将Build Agent文件夹更改为每个版本的特殊内容。 例如$(SourceDir)\ PROJECT1 $(SourceDir)\ p​​roject2等

答案 4 :(得分:0)

我遇到了同样的问题。我的解决方案是在编辑构建定义>源设置,构建代理文件夹没有$(SourceDir)的前缀,而是我本地计算机上的完整路径。

我将路径更改为以$(SourceDir为前缀,我的问题已解决。

答案 5 :(得分:-1)

我已重命名构建定义名称,并且它开始工作。