【发布时间】:2012-01-06 12:46:25
【问题描述】:
必须使用一种或多种配置(调试/发布/...)构建多个项目。
需要将构建的输出复制到一个文件夹 (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
我得到了这么远的 atm,但不知道如何覆盖每个项目的 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 项目文件中完成此操作?
【问题讨论】:
标签: msbuild msbuild-4.0