如何使用MSBuild递归地仅复制修改过的文件或新文件?
我需要一些使用MSBuild将文件复制到两个目录的帮助 首先我发现了after.xyz.sln.targets。这将确保无论实际生成与否,复制文件任务都将运行 我想用它只将新的或修改过的文件复制到两个目标目录。所以我还需要一些比较代码。我能想到的步骤如何使用MSBuild递归地仅复制修改过的文件或新文件?,msbuild,Msbuild,我需要一些使用MSBuild将文件复制到两个目录的帮助 首先我发现了after.xyz.sln.targets。这将确保无论实际生成与否,复制文件任务都将运行 我想用它只将新的或修改过的文件复制到两个目标目录。所以我还需要一些比较代码。我能想到的步骤 比较dir1和dir2,并在dir1中找到任何新的或修改过的文件 递归地将这些文件复制到dir2 然后递归地将精确的文件集复制到dir3 TIA。您需要使用任务的参数SkipUnchangedFiles。例如: <Project xmlns=
TIA。您需要使用任务的参数
SkipUnchangedFiles
。例如:
<Project xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<ItemGroup>
<MySourceFiles Include="c:\MySourceTree\**\*.*"/>
</ItemGroup>
<Target Name="CopyFiles">
<Copy
SourceFiles="@(MySourceFiles)"
DestinationFiles="@(MySourceFiles->'c:\MyDestinationTree\%(RecursiveDir)%(Filename)%(Extension)')"
SkipUnchangedFiles="true"
/>
</Target>
</Project>
谢谢您提供的信息。我当然不知道滑雪板。有没有办法将c:\MyDestinationTree指定为来自ItemGroup?我尝试了@(MyTarget),但它实际上创建了类似项目名称的文件夹。@sdog,我不确定我是否正确理解了您在评论中的第二个问题。请就此提出一个新问题,并更详细地描述您的场景。