This is a non-trivial task with the current targets file, unfortunately.
You'll need to set the SkipDropBuild property to true (to skip the standard dropping of binaries) and then override the AfterDropBuild target to do what you are looking for. You'll want to copy the binaries from their intermediate directories (e.g. <solution directory>\obj\debug) rather than their output directories, since you won't be able to distinguish which assemblies came from which solutions there.
You'll want to batch over the SolutionToBuild collection in some way, but it may be a bit tricky. You'll need something like this:
<Target Name="AfterDropBuild">
<CreateItem Include="%(SolutionToBuild.RootDir)%(SolutionToBuild.Directory)\**\*.dll;%(SolutionToBuild.RootDir)%(SolutionToBuild.Directory)\**\*.exe" AdditionalMetadata="SolutionName=%(SolutionToBuild.Filename)">
<Output ItemName="FilesToCopy" TaskParameter="Include" />
</CreateItem>
<Copy SourceFiles="@(FilesToCopy)" DestinationFiles="@(FilesToCopy ->'$(DropLocation)\$(BuildNumber)\Integration\Binaries\%(SolutionName)\%(RecursiveDir)%(Filename)%(Extension)')" />
</Target>
You'll need to include whatever other extensions you care about in the Include list.
-Aaron
http://blogs.msdn.com/aaronhallberg |