【发布时间】:2011-09-15 08:10:55
【问题描述】:
我想知道如何使用 MSBuild 同步两个文件夹,包括子文件夹。
我喜欢做的是
a) 将所有较新的文件从源文件夹复制到目标文件夹 或者在dest文件夹中不存在
和
b) 删除 dest 文件夹中不存在(不再存在)的所有文件 源文件夹
a) 使用 <Copy> 任务非常容易,但我怎样才能完成 b)?
这是我目前的构建文件:
<Project xmlns="http://schemas.microsoft.com/developer/msbuild/2003"
ToolsVersion="4.0"
DefaultTargets="Backup">
<PropertyGroup>
<SourceFolder>C:\source</SourceFolder>
<DestFolder>C:\dest</DestFolder>
</PropertyGroup>
<ItemGroup>
<FilesToCopy Include="$(SourceFolder)\**" />
</ItemGroup>
<Target Name="Backup">
<!-- copy all files from the source folder to the dest folder
that are newer or don't exist in the dest folder -->
<Copy
SourceFiles="@(FilesToCopy)"
DestinationFiles="@(FilesToCopy->'$(DestFolder)\%(RecursiveDir)%(Filename)%(Extension)')"
SkipUnchangedFiles="True" />
<!-- TODO: remove all files from the dest folder
that don't exist in the source folder -->
</Target>
</Project>
【问题讨论】:
标签: msbuild