Question: Is there a mode, some switch or a programmatic way that I can ask MSBuild to display or output it's calculated dependencies for a given build file?

**Some background** - 
I have a large project that requires splitting up to speed up the build time and want to remove the slow changing infrastructure code into it's own release area. Not all of the information is contained in the build file itself, as some sub-projects are referenced by their vcproj or csproj files.

I'd really like to see what MSBuild thinks needs doing (either worse-case [rebuild all] and perhaps for a make) without actually doing the rebuild.

Answer: 
The [MSBuild Profiler](http://www.codeplex.com/msbuildprofiler) project should be able to help you in seeing where time is being taken on the build. It doesn't directly show dependencies. With or without build dependencies, just profiling the builds can probably give some insight and help speed up the process.

I did just come across this application, but I have not used it myself yet, [Dependency Visualizer](http://www.codeplex.com/dependencyvisualizer) that looks to have just added MSBuild-compatible project files. There have also been posts about doing this previously, but no code (see [A](http://weblogs.asp.net/nunitaddin/archive/2004/09/18/231141.aspx), [B](http://blogs.msdn.com/msbuild/archive/2005/11/14/492653.aspx)).
Whilst I asked the original question quite a long time ago, I have moved on in jobs and surprisingly encountered the same need. In this case I was more successful in my pursuit of a tool and discovered [Microsoft Build Sidekick](http://www.attrice.info/msbuild/index.htm) which offers:

* view
* edit
* build
* debug

of Microsoft Visual Studio© 2005, 2008 and 2010 project files.

As well as debugging and logging features I haven't yet used, it has a diagramming mode where you can select the "Target" and it shows all of the dependent Targets and steps within them. Apparently this diagram can be viewed when stepping through the build process (debugging)!