Необходимо построить несколько проектов с одной или несколькими конфигурациями (отладка / выпуск /...).
Вывод сборки необходимо скопировать в папку (BuildOutputPath).
Существует BuildOutputFolder по умолчанию, но для некоторых проектов вы можете указать, что вывод нужно поместить в дополнительную дочернюю папку.
Например:
Конфигурация:
- отладка
- выпуск
Проекты:
- Project1 (BuildOutputFolder)
- Project2 (BuildOutputFolder)
- Project3 (BuildOutputFolder \ Child)
Конечный результат должен выглядеть следующим образом:
\\BuildOutput\
debug\
project1.dll
project2.dll
Child\
Project3.dll
release\
project1.dll
project2.dll
Child\
Project3.dll
Я получил это далеко, но не могу понять, как переопределить OutputPath для проекта.
<Project xmlns="http://schemas.microsoft.com/developer/msbuild/2003" ToolsVersion="4.0" DefaultTargets="Build" >
<ItemGroup>
<ConfigList Include="Debug" />
<ConfigList Include="Release" />
</ItemGroup>
<PropertyGroup>
<BuildOutputPath>$(MSBuildProjectDirectory)\BuildOutput\</BuildOutputPath>
</PropertyGroup>
<ItemGroup>
<Projects Include="project1.csproj" />
<Projects Include="project2.csproj" />
<Projects Include="project3.csproj" />
</ItemGroup>
<Target Name="Build">
<MSBuild Projects="@(Projects)"
BuildInParallel="true"
Properties="Configuration=%(ConfigList.Identity);OutputPath=$(BuildOutputPath)%(ConfigList.Identity)" />
</Target>
</Project>
Как бы вы достигли этого в файле проекта MSBuild?