After looking at your comment again I realized that I mis-intrepreted what you really needed. This is an interesting problem you have on your hands.
If you don't mind editing the project file itself you may be able to get pretty close to what you want. There is an item FileWrites that keeps track of all the files that were written out during the build process. To start playing around with this edit the project file to have this AfterBuild target
<Target Name="AfterBuild">
<Message Text="FileWrites: @(FileWrites)" Importance="high"/>
</Target>
There are some problems with this approach as well
- You have to edit the project file itself
- This will contain files written to the intermediate output dir (i.e. obj) and the output dir (i.e. bin)
- If there are build customizations, they are not required to write to this item
You might think that you could solve the first problem with the MSBuild: Find Many Project References technique and output the FileWrites item after doing a build. This will only work if the wrapper proj file was placed in the same folder as the original project itself because all the items inside of a .csproj file are declared with a relative path. So there goes that for the most part.
You can get over the second limitation by using the FindUnderPath task to only get the files placed in the OutputPath folder.
What you could do but is not really reliable either is to examine the OutputPath at the begining of the build and then once again at the end of the build nad see what was added. Let's say that you put the original files into an item StartFiles and at the end of the build put all the files into an item named EndFiles you could the do:
<Target Name="SomeTargetHere">
<ItemGroup>
<FilesWritten Include="@(EndFiles)" />
<FilesWritten Remove="@(StartFiles)"/>
</ItemGroup>
<!-- Now FilesWritten contains the difference between EndFiles & StartFiles -->
</Target>
In short I'm not sure if there is a good solution that doesn't involve either a custom task or a custom logger :(.