As part of my war on long build times (our C++ solution takes about an hour to build using Incredibuild!) I'm trying to find the build time hotspots. I've enabled Build Times logging (Tools -> Options -> Projects and Solutions -> VC++ Project Settings -> Build Timing) on my machine and that does what I want (I've then written a script to pull those out for each project and dump them somewhere more useful).
The trouble is I can't make out CI builds do the same thing. We're using CruiseControl.Net (although I'm in the process of trying to persuade the team to move to TeamCity). The overnight build does not use Incredibuild, so this is ideal for my logging purposes.
CC.Net runs as a service using a dedicated system account. I've logged into the server and launched Visual Studio using the system account and applied the "Build Timing" setting. But the builds don't show the Build Time.
so:
(a) Is there anything special about running VS from a service that may have an impact?
(b) Is there anything special about running it from CC.Net (we're using the DevEnv task to build the whole solution - default install location - matches the one I set the option in)?
(c) Is there any other way I can coerce it into logging the build times (other than using MSBuild, which would be a big job right now)?
This might not give the amount of detail you need, but you could add the statistics plugin to the dashboard. It contains a graph of project build duration.