在为项目制作生成版本的时候,有时候会拷贝一些文档或脚本到生成目录,如使用说明书、数据库部署脚本等。一般来说可以使用<copy>任务来完成。
这里可以参考MSDN的 Copy Task http://msdn.microsoft.com/en-us/library/3e54c37h(v=VS.100).aspx
参考其中的例子(有所修改,但效果相同)
<ItemGroup>
<DataBaseFiles Include="D:\BT\System\Sources\Database\**\*.*"/>
</ItemGroup>
<Target Name="CopyFiles">
<Copy
SourceFiles="@(DataBaseFiles)"
DestinationFiles="$(DropLocation)\$(BuildNumber)\Database"
/>
</Target>
在执行这个任务时候,Database的文件全部被copy到了$(DropLocation)\$(BuildNumber)\Database目录下,没有目录结构。原目录下的所有文件被全部放到了此目录下。
查看相关MSDN找到此说明http://social.msdn.microsoft.com/forums/en-US/tfsbuild/thread/db14fbf3-40b4-4270-9c3f-ddfb0881e68c
需要将最终放置目录后加入\%(RecursiveDir),即可。
SourceFiles="@(DataBaseFiles)"
DestinationFiles="$(DropLocation)\$(BuildNumber)\Database\%(RecursiveDir)"
PS:其中还提到了使用command的xcopy命令,小试了一下,未成功,可能因为源路径写错了的缘故。也贴于此参考
<Exec Command="xcopy /y /e $(DropLocation) $(RemoteDeploySitePath)"/>