多個項目必須建立一個或多個配置(調試/發佈/ ...)。如何使用MSBuild爲每個項目每個構建配置提供不同的OutputPath?
構建的輸出需要被複制到文件夾(BuildOutputPath)。 有一個默認的BuildOutputFolder,但對於某些項目,您可以指出輸出需要放在額外的子文件夾中。
例如:
配置爲: - 調試 - 釋放
的項目有:
- PROJECT1(BuildOutputFolder)
- Project2的(BuildOutputFolder)
- 項目3( 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項目文件中完成此操作?
我試過了,但我把項目的元數據中的MSBuild屬性的那一刻,%ConfigList.Identity被忽略。 – Linefeed 2012-01-09 07:42:09