What is/are the difference(s) between MSBuild and TFSBuild

TFS uses same MSBuild 3.5 under the hood for automatic builds that Visual Studio 2008 uses locally. TFS defines its own build sequence by supplying MSBuild with a .proj file that imports TFS-specific targets and enriches the build sequence of the solution with the features useful in the Team environment (i.e. get latest version from source control, do the build, create TFS ticket if build fails etc.)

Here's my attempt at making sense of all these build frameworks (archived here) by providing historical perspective: (my guesses and assumptions may be invalid but should still be useful conceptual info for noobs). Checkout the last section called "TFS-related MSBuild concepts" -- it has some useful links.


MSBuild vs TFSBuild

MSBuild is the technology that is used for the actual builds. The 'Builds' node in Team Explorer is an XML file that inputs basic parameters that will be inputed in MSBuild. When you add a Build in this node it will actually add some files to your source control tree. These are the files that are connected to MSBuild that you would customize.

You can automate your builds very easily. There is a command line tool called tfsbuild, this should be located in the %Program Files%\Microsoft Visual Studio 8\Common7\IDE folder. You specify a TFS Server, a Team Project, and a Build Type (the name that you created in the 'Builds' node). Use this command line utility and use the Task Scheduler within windows to call this (Program Files -> Accessories -> System Tools -> Schedule Tasks).

Source: MSDN Forums