MSBuild is a build tool that helps automate the process of creating a software product, including compiling the source code, packaging, testing, deployment and creating documentations. With MSBuild, it is possible to build Visual Studio projects and solutions without the Visual Studio IDE installed. MSBuild is free and open-source.4 MSBuild was previously bundled with .NET Framework; starting with Visual Studio 2013, however, it is bundled with Visual Studio instead.5 MSBuild is a functional replacement for the nmake utility, which remains in use in projects that originated in older Visual Studio releases.
MSBuild acts on MSBuild project files which have a similar XML syntax to Apache Ant or NAnt. Even though the syntax is based upon well-defined XML schema, the fundamental structure and operation is comparable to the traditional Unix make utility: the user specifies what will be used (typically source code files) and what the result should be (typically a static library, DLL or an executable application), but the utility itself decides what to do and the order in which to carry out the build.
MSBuild can build a project against a supported .NET Framework version of choice. This feature is called "multitargeting". Any given build of a project, however, can only target one version of the framework at a time.6
MSBuild was first created in 2003 targeting .NET Framework 2.0 for use in Visual Studio 2005 (codenamed Whidbey)7 and Windows Vista (codenamed Longhorn).89
"microsoft/msbuild: The Microsoft Build Engine (MSBuild) is the build platform for .NET and Visual Studio". GitHub. Microsoft. Retrieved 2019-07-23. https://github.com/Microsoft/msbuild ↩
Hashimi, Sayed Ibrahim; Bartholomew, William (2009). Inside the Microsoft Build Engine: Using MSBuild and Team Foundation Build. Microsoft Press. p. 406. ISBN 978-0-7356-2628-7. 978-0-7356-2628-7 ↩
"MSBuild". MSBuild. Microsoft Docs. Retrieved 2019-07-23. https://docs.microsoft.com/visualstudio/msbuild/msbuild ↩
Lander, Rich (18 March 2015). "MSBuild Engine is now Open Source on GitHub". .NET Blog. MSDN Blogs. Microsoft. Retrieved 2019-07-23. https://devblogs.microsoft.com/dotnet/msbuild-engine-is-now-open-source-on-github/ ↩
"What's new in MSBuild 12.0". MSBuild. Microsoft Docs. Retrieved 2019-07-23. https://docs.microsoft.com/visualstudio/msbuild/what-s-new-in-msbuild-12-0 ↩
"MSBuild multitargeting overview". MSBuild. Microsoft Docs. Retrieved 2019-07-23. https://docs.microsoft.com/visualstudio/msbuild/msbuild-multitargeting-overview ↩
"Building, Testing, and Deployment". What's New in Visual Studio 2005. MSDN. Microsoft. Archived from the original on 2014-08-26. https://web.archive.org/web/20140826051347/http://msdn.microsoft.com/en-us/library/88fx1xy0(VS.80).aspx#rtmbuildtestdeploy ↩
Sneath, Tim (July 19, 2004). "MSBuild: The New Build System for Visual Studio 2005 and Longhorn". Tim Sneath. MSDN Blogs. Retrieved 2018-04-22. https://blogs.msdn.microsoft.com/tims/2004/07/19/msbuild-the-new-build-system-for-visual-studio-2005-and-longhorn/ ↩
England, Chuck (February 25, 2010). "Getting Started with MSBuild". The Visual Studio Blog. MSDN Blogs. Retrieved 2018-04-22. https://blogs.msdn.microsoft.com/visualstudio/2010/02/25/getting-started-with-msbuild/ ↩
"Standard and custom Toolset configurations". MSBuild. Microsoft Docs. Retrieved 2019-07-23. https://docs.microsoft.com/visualstudio/msbuild/standard-and-custom-toolset-configurations ↩
"What's new in MSBuild 15". MSBuild. Microsoft Docs. Retrieved 2019-07-23. https://docs.microsoft.com/visualstudio/msbuild/what-s-new-in-msbuild-15-0 ↩
"What's new in MSBuild 16.0". MSBuild. Microsoft Docs. Retrieved 2019-07-23. https://docs.microsoft.com/visualstudio/msbuild/whats-new-msbuild-16-0 ↩
"MSBuild task reference". MSBuild. Microsoft Docs. Retrieved 2019-07-23. https://docs.microsoft.com/visualstudio/msbuild/msbuild-task-reference ↩