如何使用msbuild复制任务指定文件夹结构

Mic*_*eth 22 .net msbuild

我有以下msbuild脚本将整个DeploymentDirectory复制到VersionSpecificDirectory.这是片段:

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

脚本用于复制DeploymentDirectory中的所有文件而不是目录本身的内容是什么?

更新:我尝试将斜杠的方向更改为反斜杠,问题仍然存在.

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

Mat*_*son 36

试试这个:

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

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

来自MSDN.