为什么在尝试从构建中隐藏子子文件夹时,会出现错误“项目...可能没有隐藏,因为它没有映射的父级”?

时间:2017-01-31 15:06:26

标签: tfs tfsbuild tfs2015

我正在使用TFS 2015来构建C#解决方案。在此解决方案的文件夹结构深处是包含某些大型非代码数据文件的文件夹。我想要一些构建到 include 这些构建,有些构建到排除它们。

使用TFS 2015 Web界面,我设置了排除这些文件的构建。然后,我使用Repository选项卡,并使用Cloak类型映射将数据文件夹添加到Mappings部分。

然而,当我然后对这个构建进行排队时,它失败了“该项目......可能没有被隐藏,因为它没有映射的父级”。

当然,代码存储库中的顶级文件夹已映射。为什么TFS抱怨这个,我该怎么办呢?

4 个答案:

答案 0 :(得分:3)

我不知道为什么,但我知道要解决此问题,您只需阅读错误消息

  

项目......可能没有隐形,因为它没有映射的父级

因此,如果您在失败的构建中结束了这种存储库结构:

Type   Server Path                    Local Path
Map    $/Project                      $(build.sourcesDirectory)\Project
Cloak  $/Project/Assets/Data/Data2013
Cloak  $/Project/Assets/Data/Data2014
Cloak  $/Project/Assets/Data/Data2015

您只需添加一行,如下所示:

Map    $/Project/Assets/Data          $(build.sourcesDirectory)\Project\Assets\Data

现在,您尝试Cloak的项目具有“已映射的父级”,您的构建应该会成功。

您可能认为整个存储库树已“映射”这一事实就足够了,但显然不是。

答案 1 :(得分:2)

您的解决方案只是解决此问题的准确方法。我只会添加一个与为什么相关的点。

在TFS中,隐藏路径表示路径未包含在其文件夹的递归映射中。当您的工作站在父映射目录中有源代码,并且源代码尚未添加到源控件时,本地目录被认为是隐藏的。

简单来说,就像提到的错误信息一样,这是设计的,如果文件夹没有映射的父级,则不能隐藏“Cloaked”文件夹。有关详细信息,您可以查看MSDN链接中 cloak 的相关信息:Optimize your workspace using explicit, implicit, cloaked, and non-recursive folder mappings

enter image description here

答案 2 :(得分:1)

  

ProjectXYZ / Drop'无法隐藏,因为它没有映射的父级。

获取此错误的另一种方法是,如果您在地图中指定了Sln文件:

enter image description here

在第1步的过程中,指定单个Sln文件的正确位置。

答案 3 :(得分:0)

检查此快速解决方案。解决了我的问题。

http://jawedm.blogspot.com/2013/05/error-in-team-foundation-server-this.html

  1. Source Control Explorer 窗口中,右键单击父节点 -出现上下文菜单
  2. 点击上下文菜单中的删除映射 ...选项-删除 出现映射对话框
  3. 选中标有递归

  4. 的框
  5. 单击更改按钮-提示     出现             指出:“只有在您             执行获取。您要立即获得$ / [父路径]吗?”,在哪里             “ [PARENT PATH]'是父节点的路径

  6. 单击“否”按钮                 -提示和“删除映射”窗口消失,然后出现“获取”窗口
  7. 注意:尽力判断     这里!         一世             决定                 至                     单击“获取进度”窗口中的“取消”按钮,以防止                     映射子对象