假设TFS 2010中有这个文件夹结构
Main
Collection_A
Solution_A1
Solution_A2
Reference Assemblies
Collection_B
Solution_B1
Project_B1A
Project_B1A
使用相对路径(Reference Assemblies
)引用Collection_A
..\..\..\Collection_A\Reference Assemblies\Whatever.dll
中的dll。在TFS中定义构建定义时,我们在“工作流”选项卡中遇到了问题。
Project_B1A => $(SourceDir)
参考装配应该是
Reference Assemblies => $(SourceDir)\..\..\..\Collection_A\Reference Assemblies
然后TFS抛出错误
TF215083: The local path $(SourceDir)\..\..\Collection_A\Reference Assemblies for a
workspace mapping is not valid. (Detail Message: TF10202: The path '..' ends with a
character which is not allowed. Characters which are not allowed include '.' and ' '.)
我们尝试了$(SourceDir)\Collection_A\Reference Assemblies
和$(BuildDir)\Collection_A\Reference Assemblies
,但正如预期的那样,没有效果。还有其他可以使用的变量吗?
答案 0 :(得分:7)
正如错误消息所示,我不认为在定义工作文件夹映射时允许使用相对路径。
您应该做的是从要映射的所有可能路径的最常见路径开始映射(在本例中,它是Main)。所以$(SourceDir)应该映射到Main。但是,您应该仅映射Main的顶级(通过使用星号作为Main / *)。这意味着您不希望以递归方式映射Main。然后在其他映射中指定Main的特定子文件夹。
看起来像是:
$/Main/* -> $(SourceDir)
$/Main/Collection_A/Reference Assemblies -> $(SourceDir)\Collection_A\Reference Assemblies
$/Main/Collection_B/Solution_B1/Project_B1A -> $(SourceDir)Collection_B\Solution_B1\Project_B1A
或者,如果您不希望映射的路径数小于要在根路径下映射的路径数,则可以递归地映射根路径,但是可以选择性地隐藏那些不是需要。
希望这有帮助。