2009-04-22 113 views
20

我有以下msbuild脚本将整个DeploymentDirectory复制到VersionSpecificDirectory。下面是摘录:如何使用msbuild复制任务指定文件夹结构

<CreateItem Include="$(DeploymentDirectory)/**/*.*" > 
    <Output ItemName="AllDeploymentFilesToCopy" TaskParameter="Include" /> 
</CreateItem> 
<Copy SourceFiles="@(AllDeploymentFilesToCopy)" 
     DestinationFiles="@(AllDeploymentFilesToCopy->'$(VersionSpecificDirectory)\%(RecursiveDir)%(Filename)%(Extension)')" /> 

将脚本是什么如何复制DeploymentDirectory而不是目录本身的所有文件?

更新:我试着改变斜杠的方向是一个反斜杠,问题依然存在。

另一个更新:这与msbuild代码无关。我的问题中的代码和答案中的代码都可以正常工作。

回答

33

试试这个:

<ItemGroup> 
    <MySourceFiles Include="c:\MySourceTree\**\*.*"/> 
</ItemGroup> 

<Target Name="CopyFiles"> 
    <Copy 
     SourceFiles="@(MySourceFiles)" 
     DestinationFiles="@(MySourceFiles->'c:\MyDestinationTree\%(RecursiveDir)%(Filename)%(Extension)')" 
    /> 
</Target> 

MSDN

相关问题