MSBuild 复制特定的文件和文件夹


MSBuild copy specific files and folders

假设我有以下文件夹结构

app
-->folder1
----->subfolder2
----->subfolder3
-->folder2
----->subfolder4
-->folder3

我想使用 Copy 任务将folder2(包括子文件夹)和subfolder3复制到我的输出中。

我怎样才能做到这一点?顺便说一句,我正在使用MSBuild进行PHP网站,在实际情况中,我想复制的子文件夹和特定文件夹还有很多。

创建包含folder2subfolder3的物料组,然后使用copy任务。

例如:

<ItemGroup>
  <sourceFiles Include="app'folder1'subfolder3'**'*.*" />
  <sourceFiles Include="app'folder2'**'*.* />
</ItemGroup>
<Copy SourceFiles="@(sourceFiles)" DestinationFolder="c:'output'%(RecursiveDir)"></Copy>

你可以试试RoboCopy:

<UsingTask AssemblyFile="MSBuild.ExtensionPack.dll" TaskName="MSBuild.ExtensionPack.FileSystem.RoboCopy"/>
<MSBuild.ExtensionPack.FileSystem.RoboCopy 
  Source="$(YourSourcePath)" 
  Destination="$(YourOutputPath)" 
  Files="*.*"
  Options="/MIR"/>

/MIR选项复制整个文件夹树,包括空文件夹

机器人复制参考:

  • http://technet.microsoft.com/en-us/library/cc733145(WS.10).aspx

MSBuild 扩展包