Вы можете создать цель, которая выглядит следующим образом:
<Target Name="CopyFiles" DependsOnTargets="YourBuildTargets">
<CreateItem Include="YourSolutionPath\bin\$(Configuration)\*.*">
<Output ItemName="YourProjectOutputFiles" TaskParameter="Include"></Output>
</CreateItem>
<Copy SourceFiles="@(YourProjectOutputFiles)" DestinationFolder="$(DestinationFolder)"></Copy>
</Target>
Это создаст цель с именем CopyFiles
, которая зависит от выполнения YourBuildTargets
(Вы можете поместить туда несколько зависимостей, разделенных точками с запятой). Он описывает элемент, который включает в себя все файлы (*. *) В каталоге проекта. Затем он запускает команду Copy
и копирует файлы, описанные элементом, в папку назначения. Если у вас есть много проектов, все строящихся по одному сценарию MSBuild, у вас будет узел CreateItem
для каждого проекта для индексации файлов и соответствующий узел Copy
для выполнения копирования.
Или, если вы просто хотите сделать это для каждого проекта отдельно, просто поместите этот блок в каждый файл .csproj.
Теперь просто включите цель CopyFiles
в список целей, создаваемых вашим сценарием.