使用MSBuild从文件列表复制目录结构

时间:2015-04-23 15:17:08

标签: visual-studio msbuild projects-and-solutions msbuild-task

这比结构复制稍微复杂,因此是一个单独的问题。

我们有这个项目组,它是要复制的文件的集合。

<ItemGroup>
   <FilesToBeCopied Include="
       C:\SomeFolder\a.exe;
       C:\SomeFolder\d.dll;
       C:\SomeFolder\AFolder\*;
       C:\SomeFolder\e.dll;
       C:\SomeFolder\some.xml;>
   </FilesToBeCopied>
</ItemGroup>

我们需要一个复制任务,有些东西可能类似于下面一行

<Copy SourceFiles="@(FilesToBeCopied)" DestinationFolder="bin\%(FilesToBeCopied.RecursiveDir)" SkipUnchangedFiles="true"/>

所需的最终结构是:

somelocation\bin\a.exe; 
somelocation\bin\d.dll;
somelocation\bin\AFolder\*;
somelocation\bin\e.dll;
somelocation\bin\some.xml;

有没有办法实现这个目标? 因为上面的复制语句将所有文件复制到bin \文件夹,并且不在bin中创建AFolder *结构。

1 个答案:

答案 0 :(得分:0)

原来这个修复非常简单。只需使用文件夹周围有通配符**的项目组。

<ItemGroup>
   <FilesToBeCopied Include="
       C:\SomeFolder\a.exe;
       C:\SomeFolder\d.dll;
       C:\SomeFolder\**\AFolder\**;
       C:\SomeFolder\e.dll;
       C:\SomeFolder\some.xml;>
   </FilesToBeCopied>
</ItemGroup>