在 中定义了源目录和目标目录的列表。我需要一个任务/目标来根据定义的项目组属性执行 robocopy。
<ItemGroup>
<ItemToCopy Include="$(RootPath)\Audi">
<WhereToCopy>$(FinalFolder)\Audi</WhereToCopy>
<WhatToCopy>*.svc</WhatToCopy>
</ItemToCopy>
<ItemToCopy Include="$(RootPath)\Custom">
<WhereToCopy>$(FinalFolder)\Custom</WhereToCopy>
<WhatToCopy>*.svc</WhatToCopy>
</ItemToCopy>
<ItemToCopy Include="$(RootPath)\Audi\bin">
<WhereToCopy>$(FinalFolder)\Audi\bin</WhereToCopy>
<WhatToCopy>*.*</WhatToCopy>
</ItemToCopy>
<ItemToCopy Include="$(RootPath)\Custom\bin">
<WhereToCopy>$(FinalFolder)\Custom\bin</WhereToCopy>
<WhatToCopy>*.*</WhatToCopy>
</ItemToCopy>
我尝试了以下代码,期望对部署文件夹中的每个项目执行复制操作。
<Target Name="CopyAll">
<RoboCopy
Source="@(ItemToCopy)"
Destination="%(ItemToCopy.WhereToCopy)" Files="ItemtoCopy.Whattocopy"/>
</Target>
此外,如果我们看到项目 1 和 2(还有 3 和 4),它们在将类似类型的文件从它们的 %ItemName 复制到具有子目录 %ItemName 的相同路径的意义上是相同的。如果我们也能避免这种额外的代码气味,那就太好了。希望像下面这样的工作:
<ItemToCopy Include="$(RootPath)\@PublishProjects">
<WhereToCopy>$(FinalFolder)\@PublishProjects</WhereToCopy>
<WhatToCopy>*.svc</WhatToCopy>
</ItemToCopy>
where,
<ItemGroup>
<PublishProjects Include="Audi" />
<PublishProjects Include="Custom" />
</ItemGroup>