The Microsoft Build Engine (MSBuild) is the build platform for .NET and Visual Studio.
C# XSLT Batchfile Shell PowerShell Groovy
Latest commit 7a255b8 Feb 27, 2017 @Sarabeth-Jaffe-Microsoft Sarabeth-Jaffe-Microsoft committed with AndyGerlicher _ignoreStandardErrorWarningFormat defaults to false (#1744)
Comment correction. Comment states that _ignoreStandardErrorWarningFormat defaults to true, but it defaults to false. 

Closes #766
Failed to load latest commit information.
Samples Update project references Feb 8, 2017
branding Initial commit of branding (#941) Aug 24, 2016
build Enable XmlPeek and XmlPoke tasks for .NET Core. (#1732) Feb 23, 2017
documentation Create documentation for NuGet packages. (#1153) Oct 5, 2016
ref Enable XmlPeek and XmlPoke tasks for .NET Core. (#1732) Feb 23, 2017
setup Rename paths in SWR (#1703) Feb 15, 2017
src _ignoreStandardErrorWarningFormat defaults to false (#1744) Feb 27, 2017
targets Fix build on RHEL 7 (#1718) Feb 22, 2017
.editorconfig Added editorconfig properties from corefx Mar 20, 2015
.gitattributes Merge remote-tracking branch 'Microsoft/master' into xplat May 17, 2016
.gitignore Initial check-in of ref assembly sources for net46 Sep 14, 2016
Before.Microsoft.Common.targets Target netcoreapp1.0 for MSBuild executable (#1137) Oct 11, 2016
BuildToolsVersion.txt Upgrade BuildTools to 1.0.27-prerelease-00927-05 (#1279) Oct 28, 2016
CompatBaseline.txt Update CompatBaseline to reflect Update 1 changes Oct 26, 2015
CreateBootstrappedMSBuild.cmd Pass through arguments in build scripts Jul 29, 2016
DotnetCLIVersion.txt Update DotnetCli version to 1.0.0-preview3-003686 (#1100) Sep 28, 2016
LICENSE Initial commit Mar 12, 2015
NuGet.Config Update System.Collections.Immutable to 1.2.1 Jan 7, 2017 updated some doc links (#1589) Jan 24, 2017
RebuildWithLocalMSBuild.cmd Consolidate bootstrap projects Nov 2, 2016
RunApiPort.bat Add the rest of the product assemblies to RunApiPort, fix them so the… Aug 14, 2015
build.cmd Enable build.cmd to work under VS2017 prompt (#1716) Feb 16, 2017
build.proj Merge commit 'bcea6ae' into full-master-merge Aug 17, 2016
cibuild.cmd nowarn for editbin failure Jan 25, 2017 Fix build on RHEL 7 (#1718) Feb 22, 2017
dir.props Add net46 dependencies to msbuild nuspecs (#1682) Feb 9, 2017
dir.targets Make LargeAddressAware incremental (#1658) Feb 2, 2017
dir.traversal.targets Do not build top level projects in parallel Aug 3, 2016
init-tools.cmd Update DotnetCli version to 1.0.0-preview3-003686 (#1100) Sep 28, 2016 Update DotnetCli version to 1.0.0-preview3-003686 (#1100) Sep 28, 2016
netci.groovy Update CI environment to run tests on Ubuntu (#1322) Nov 7, 2016
runApiCompat.bat Add Microsoft.Build.Tasks.Core to ApiCompat Sep 11, 2015
version.json Update file version to 15.2. Leave assembly version at 15.1 (#1652) Feb 1, 2017

Microsoft.Build (MSBuild)

The Microsoft Build Engine is a platform for building applications. This engine, which is also known as MSBuild, provides an XML schema for a project file that controls how the build platform processes and builds software. Visual Studio uses MSBuild, but MSBuild does not depend on Visual Studio. By invoking msbuild.exe on your project or solution file, you can orchestrate and build products in environments where Visual Studio isn't installed.

For more information on MSBuild, see the MSBuild documentation on

Build Status

The current development branch is xplat. It builds for .NET Core and the full desktop .NET framework.

Runtime\OS Windows Ubuntu 14.04 Ubuntu 16.04 Mac OS X
Full Framework Build Status N/A N/A N/A
.NET Core Build Status Build Status Build Status Build Status
Mono Build Status Build Status Build Status Build Status

Full-framework-only build from master (deprecated): Build Status

Join the chat at

Source code

  • Clone the sources: git clone


Building MSBuild with VS 2015

For the full supported experience, you will need to have Visual Studio 2015. You can open the solution in Visual Studio 2017 RC, but you will encounter issues building with the provided scripts.

To get started on Visual Studio 2015:

  1. Install Visual Studio 2015. Select the following optional components:
    • Microsoft Web Developer Tools
    • Universal Windows App Development Tools
      • Tools and Windows SDK 10.0.10240
  2. Clone the source code (see above).
  3. Build the code using the cibuild.cmd script.
  4. Open src/MSBuild.sln solution in Visual Studio 2015.

Building MSBuild in Unix (Mac & Linux)

MSBuild's xplat branch allows MSBuild to be run on Unix Systems. Set-up instructions can be viewed on the wiki: Building Testing and Debugging on .Net Core MSBuild


You can turn on localized builds via the /p:LocalizedBuild=true command line argument. For more information on localized builds and how to make contributions to MSBuild's translations, see our localization wiki

How to Engage, Contribute and Provide Feedback

This project has adopted the Microsoft Open Source Code of Conduct. For more information see the Code of Conduct FAQ or contact with any additional questions or comments.

Getting Started

Before you contribute, please read through the contributing and developer guides to get an idea of what kinds of pull requests we will or won't accept.

Looking for something to work on? This list of up for grabs issues is a great place to start.

You are also encouraged to start a discussion by filing an issue or creating a gist.

MSBuild Components

  • MSBuild. Microsoft.Build.CommandLine is the entrypoint for the Microsoft Build Engine (MSBuild.exe).

  • Microsoft.Build. The Microsoft.Build namespaces contain types that provide programmatic access to, and control of, the MSBuild engine.

  • Microsoft.Build.Framework. The Microsoft.Build.Framework namespace contains the types that define how tasks and loggers interact with the MSBuild engine. For additional information on this component, see our Microsoft.Build.Framework wiki page.

  • Microsoft.Build.Tasks. The Microsoft.Build.Tasks namespace contains the implementation of all tasks shipping with MSBuild.

  • Microsoft.Build.Utilities. The Microsoft.Build.Utilities namespace provides helper classes that you can use to create your own MSBuild loggers and tasks.


MSBuild is licensed under the MIT license.