У меня есть следующий код msbuild:
<PropertyGroup>
<DirA>C:\DirA\</DirA>
<DirB>C:\DirB\</DirB>
</PropertyGroup>
<Target Name="CopyToDirA"
Condition="Exists('$(DirA)') AND '@(FilesToCopy)' != ''"
Inputs="@(FilesToCopy)"
Outputs="@(FilesToCopy -> '$(DirA)%(Filename)%(Extension)')">
<Copy SourceFiles="@(FilesToCopy)" DestinationFolder="$(DirA)" />
</Target>
<Target Name="CopyToDirB"
Condition="Exists('$(DirB)') AND '@(FilesToCopy)' != ''"
Inputs="@(FilesToCopy)"
Outputs="@(FilesToCopy -> '$(DirB)%(Filename)%(Extension)')">
<Copy SourceFiles="@(FilesToCopy)" DestinationFolder="$(DirB)" />
</Target>
<Target Name="CopyFiles" DependsOnTargets="CopyToDirA;CopyToDirB"/>
Таким образом, вызов target CopyFiles копирует соответствующие файлы в $(DirA) и $(DirB), если они еще не установлены и не обновлены.
Но цели CopyToDirA и CopyToDirB выглядят идентичными, кроме одной копии, на $(DirA), а остальные - на $(DirB). Можно ли объединить их в одну цель, сначала вызванную с помощью $(DirA), а затем с помощью $(DirB)?
Спасибо.