MSBuild递归副本

时间:2014-05-22 12:13:28

标签: visual-studio msbuild copy visual-studio-2013

在Csproj中,我有以下部分:

<ItemGroup>
    <Content Include="C\MyPath\**">
      <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
      <Link>Res\%(RecursiveDir)%(Filename)%(Extension)</Link>
    </Content>

因此,如果C \ MyPath \具有以下结构:

-C
 -MyPath
  -f1.txt
  -folder1
   -f3.txt
   -folder4
  -folder2
   -f4.txt
   -folder5

我不完全想要递归副本 但是我不希望生成folder1和folder2 而是从第二级开始递归复制:

-Res
 - f1.txt
 - f3,txt
 - folder4
 - f4.txt
 - folder5

如果不分别从每个文件夹中复制,我怎么能这样做:

 <Content Include="C\MyPath\folder1\**">
              <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
              <Link>Res\%(RecursiveDir)%(Filename)%(Extension)</Link>
    </Content>
<Content Include="C\MyPath\folder2\**">
              <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
              <Link>Res\%(RecursiveDir)%(Filename)%(Extension)</Link>
    </Content>

1 个答案:

答案 0 :(得分:0)

尝试MakeRelative property function

<Copy SourceFiles="@(Content)"
          DestinationFolder="Res\$([MSBuild]::MakeRelative(%(Content.RelativeDir), %(Content.Filename)))" />