Hack the Build: What’s New in Beta2?

Jomo Fisher – We added a bunch of stuff to MSBuild for Beta2—there’s plenty in there for several blog entries. For now, here are a few little features we added in Beta2 that I find really handy.

Diagnostic Logging

You can now turn on MSBuild diagnostic logging from within VS. Go to “Tools\Options\Projects and Solutions\Build and Run\MSBuild project build output verbosity” and dial in the level of detail you want. This can be handy for figuring out what’s really going on under the hood during builds.

Performance Logging

If you set the verbosity to diagnostic and build one of the nice bits of information you get is a performance summary broken out by Project, target, task. Something like:

Project Performance Summary:

        0 ms MyProj1.csproj 2 calls

        0 ms MyProj2.csproj 2 calls

     1515 ms MyProj3.csproj 1 calls

Target Performance Summary:

        0 ms SplitResourcesByCulture 1 calls

        0 ms BeforeResolveReferences 1 calls

// Stuff removed

      109 ms CopyNonResxEmbeddedResources 1 calls

      578 ms CoreResGen 1 calls

      625 ms CoreCompile 1 calls

Task Performance Summary:

        0 ms AssignTargetPath 5 calls

        0 ms GetFrameworkPath 1 calls

        0 ms CreateProperty 8 calls

// Stuff removed

      109 ms Copy 4 calls

      578 ms GenerateResource 1 calls

      625 ms Csc

If you’re creating your own build scripts, writing your own tasks, or modifying the targets files that came with VS, this is a handy way to see what’s called and where the time is going.

Color Logging

Drop down to the command line and build one of your projects with MSBuild.exe. The look and feel of the text output has been significantly improved. Importantly, errors are now shown in red and warnings yellow. This makes it much easier to pick out build issues from the rest of the information.

This posting is provided "AS IS" with no warranties, and confers no rights.