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 docs.microsoft.com.
The current development branch is
master. Changes in
master will go into a future update of MSBuild, which will release with Visual Studio 16.1.
We have forked for MSBuild 16.0 in the branch
vs16.0. Changes to that branch need special approval.
MSBuild 15.9 builds from the branch
vs15.9. Only very-high-priority bugfixes will be considered for servicing 15.9.
|Runtime\OS||Windows||Ubuntu 16.04||Mac OS X|
- Clone the sources:
git clone https://github.com/Microsoft/msbuild.git
Building MSBuild with Visual Studio 2017
For the full supported experience, you will need to have Visual Studio 2017 Update 7 or higher.
To get started on Visual Studio 2017:
- Install Visual Studio 2017. Select the following Workloads:
- .NET desktop development
- .NET Core cross-platform development
- Install the .NET Core 2.1 SDK.
- Clone the source code (see above).
- Open a
Developer Command Prompt for VS 2017prompt.
- Build the code using the
build.cmdscript at the root of the repo. This also restores packages needed to open the projects in Visual Studio.
MSBuild.Dev.slnin Visual Studio 2017.
Note: To produce a "bootstrap" build, run
Building MSBuild in Unix (Mac & Linux)
MSBuild can be run on Unix systems that support .NET Core. 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 documentation
How to Engage, Contribute and Provide Feedback
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. 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.