複数のターゲットをデプロイするための msbuild スクリプトを作成しています。いくつかの要素を再利用しようとしていますが、予期しない動作が発生しています。
このプロジェクト ファイルを実行すると、次のようになります。
<Project xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<Target Name="All" DependsOnTargets="DeployTarget1;DeployTarget2">
</Target>
<Target Name="DeployTarget1">
<PropertyGroup>
<RootDir>.\source1</RootDir>
</PropertyGroup>
<ItemGroup>
<DeployFiles Include="$(RootDir)\**\*.dll" Exclude="$(RootDir)\bin\C_*.xml" />
</ItemGroup>
<Copy SourceFiles="@(DeployFiles)" DestinationFiles="@(DeployFiles->'D:\deploytest\dest1\%(RecursiveDir)%(Filename)%(Extension)')" />
</Target>
<Target Name="DeployTarget2">
<PropertyGroup>
<RootDir>.\source2</RootDir>
</PropertyGroup>
<ItemGroup>
<DeployFiles Include="$(RootDir)\**\*.dll" Exclude="$(RootDir)\bin\C_*.xml" />
</ItemGroup>
<Copy SourceFiles="@(DeployFiles)" DestinationFiles="@(DeployFiles->'D:\deploytest\dest2\%(RecursiveDir)%(Filename)%(Extension)')" />
</Target>
</Project>
DeployTarget1 は、予想どおり、ファイルを source1 ディレクトリから dest1 に再帰的にコピーします。
DeployTarget2 は source1 と source2 の両方を dest2 にコピーしますが、これは私が予想したものではありません。
D:\deploytest>msbuild /t:All test.proj
Microsoft (R) Build Engine version 4.0.30319.17929
[Microsoft .NET Framework, version 4.0.30319.18052]
Copyright (C) Microsoft Corporation. All rights reserved.
Build started 8/20/2013 2:37:17 PM.
Project "D:\deploytest\test.proj" on node 1 (All target(s)).
DeployTarget1:
Copying file from ".\source1\test1.dll" to "D:\deploytest\dest1\test1.dll".
copy /y ".\source1\test1.dll" "D:\deploytest\dest1\test1.dll"
DeployTarget2:
Copying file from ".\source1\test1.dll" to "D:\deploytest\dest2\test1.dll".
copy /y ".\source1\test1.dll" "D:\deploytest\dest2\test1.dll"
Copying file from ".\source2\test2.dll" to "D:\deploytest\dest2\test2.dll".
copy /y ".\source2\test2.dll" "D:\deploytest\dest2\test2.dll"
Done Building Project "D:\deploytest\test.proj" (All target(s)).
Build succeeded.
0 Warning(s)
0 Error(s)
Time Elapsed 00:00:00.06
なぜこれが起こるのか誰か知っていますか?
この「機能」に関するドキュメントを教えてもらえますか?