Интересно, как синхронизировать две папки, включая подпапки, с помощью MSBuild.
Что мне нравится делать, так это
a) копировать все файлы из исходной папки в папку dest, которые более новые.или не существует в папке dest
и
b), чтобы удалить все файлы из папки dest, которые больше не существуют в исходной папке
а) довольно просто использовать задачу <Copy>
, но как мне выполнить б)?
Пока это мой файл сборки:
<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>