1つ以上の設定(debug/release/...)で複数のプロジェクトをビルドする必要があります。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
私はこれまで、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のプロパティでプロジェクトのメタデータを入れた瞬間、%のConfigList.Identityは無視されます。 – Linefeed