Tfs 为什么我会得到这个错误;项目。。。可能不会被掩蔽,因为它没有映射的父级;当试图从生成中隐藏子文件夹时?

Tfs 为什么我会得到这个错误;项目。。。可能不会被掩蔽,因为它没有映射的父级;当试图从生成中隐藏子文件夹时?,tfs,tfsbuild,tfs-2015,Tfs,Tfsbuild,Tfs 2015,我正在使用TFS 2015构建一个C#解决方案。在该解决方案的文件夹结构的深处是包含某些大型非代码数据文件的文件夹。我希望一些构建包含这些,一些构建排除它们 使用TFS 2015 web界面,我设置了应该排除这些文件的构建。然后我使用Repository选项卡,使用clope类型映射将数据文件夹添加到映射部分 然而,当我将此构建排队时,它会失败,并显示“该项……可能不会被掩蔽,因为它没有映射的父项” 当然,代码存储库中的顶级文件夹是映射的。为什么TFS会对此抱怨,我能做些什么?我不知道原因,但我

我正在使用TFS 2015构建一个C#解决方案。在该解决方案的文件夹结构的深处是包含某些大型非代码数据文件的文件夹。我希望一些构建包含这些,一些构建排除它们

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

然而,当我将此构建排队时,它会失败,并显示“该项……可能不会被掩蔽,因为它没有映射的父项”

当然,代码存储库中的顶级文件夹是映射的。为什么TFS会对此抱怨,我能做些什么?

我不知道原因,但我知道要解决此问题,您只需阅读错误消息即可:

项目。。。可能未被掩蔽,因为它没有映射的父级

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

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
现在,您试图隐藏的项目有一个“映射的父项”,您的构建应该成功


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

您的解决方案正是解决此问题的正确方法。我只想补充一点,说明原因

在TFS中,隐藏路径意味着该路径不包括在其父文件夹的递归映射中。当您的工作站在父级的映射目录中有源代码,并且源代码尚未添加到源代码管理中时,本地目录被认为是隐藏的

简单地说,正如错误信息所提到的,这是由设计的,如果文件夹没有映射的父文件夹,则“
隐藏的
”文件夹不能被隐藏。有关更多详细信息,请查看MSDN链接中的相关信息:

无法掩蔽ProjectXYZ/Drop,因为它没有映射的父级

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


指定单个Sln文件的正确位置在流程的步骤1中。

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

  • 在源代码管理资源管理器窗口中,右键单击父节点 --此时将显示关联菜单
  • 单击删除映射。。。上下文菜单中的选项--删除 “映射”对话框出现
  • 选中标有“递归”的框

  • 单击更改按钮--一个提示 出现, 声明:“在您 执行get。是否立即获取$/[父路径]?,其中 “[PARENT PATH]”是父节点的路径

  • 单击“否”按钮 --“提示”和“删除映射”窗口消失,然后出现“获取”窗口
  • 小心:运用你的最佳判断 在这里 我 果断的 到 单击“获取进度”窗口中的“取消”按钮,以防止 映射子对象