我试图复制位于TFS中不同位置的整个文件夹。
我有以下内容:
<Target Name="BuildControles">
<ItemGroup>
<Controles Include="$(BUILD_SOURCESDIRECTORY)\ABC\FOLDERB\*.*" />
<Controles Include="$(BUILD_SOURCESDIRECTORY)\joe\bloe\FOLDERA\*.*" />
</ItemGroup>
<Copy SourceFiles="@(Controles)" DestinationFiles="@(Controles->'$(OutDir)metadata\[FOLDERA OR FOLDER B]\%(Filename)%(Extension)')" />
</Target>
我需要将ItemGroup中指定的那些文件夹(FOLDERA和FOLDERB)复制到位于&#34;元数据&#34;下的特定路径。文件夹所以我最终:
..元数据\ FOLDERA ..
..元数据\ FolderB中..
尝试使用%(目录),%(递归目录)或%(RelativeDir)进行许多不同的操作,但无法找到方法。
请保持温和,我刚刚开始使用MsBuild:)
答案 0 :(得分:1)
在msbuild中,您可以向项目添加元数据,这些项目基本上是附加到项目的属性,然后可以使用%()语法引用这些项目。这似乎适合你想要的东西:
<ItemGroup>
<Controles Include="$(BUILD_SOURCESDIRECTORY)\ABC\FOLDERB\*.*" >
<Dest>FOLDERB</Dest>
</Controles>
<Controles Include="$(BUILD_SOURCESDIRECTORY)\joe\bloe\FOLDERA\*.*">
<Dest>FOLDERA</Dest>
</Controles>
</ItemGroup>
<Copy SourceFiles="@(Controles)"
DestinationFiles="@(Controles->'$(OutDir)metadata\%(Dest)\%(Filename)%(Extension)')" />