- Notifications
You must be signed in to change notification settings - Fork1.4k
The Microsoft Build Engine (MSBuild) is the build platform for .NET and Visual Studio.
License
dotnet/msbuild
Folders and files
Name | Name | Last commit message | Last commit date | |
---|---|---|---|---|
Repository files navigation
The Microsoft Build Engine is a platform for building applications. This engine, 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 can run without 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 theMSBuild documentation on learn.microsoft.com.
Thechangelog has detailed information about changes made in different releases.
For the full supported experience, you will need to have Visual Studio 2022 or higher.
To get started onVisual Studio 2022:
- Install Visual Studio 2022. Select the following Workloads:
- .NET desktop development
- .NET Core cross-platform development
- Ensurelong path support is enabled at the Windows level.
- Open a
Developer Command Prompt for VS 2022
prompt. - Clone the source code:
git clone https://github.com/dotnet/msbuild
- You may have todownload Git first.
- Run
.\build.cmd
from the root of the repo to build the code. This also restores packages needed to open the projects in Visual Studio. - Open
MSBuild.sln
orMSBuild.Dev.slnf
in Visual Studio 2022.
This newly-built MSBuild will be located atartifacts\bin\bootstrap\net472\MSBuild\Current\Bin\MSBuild.exe
. It may not work for all scenarios, including C++ builds.
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 ourlocalization documentation
Before you contribute, please read through the contributing and developer guides to get an idea of what kinds of pull requests we accept.
Developer Guide on:
See ourhelp wanted issues for a list of issues we think are great to onboard new developers.
- Note: Please leave a comment asking to be assigned the issue if you want to work on it.
See ourlabel documentation for descriptions of labels we use throughout the repo.
We encourage any contributions you decide to make to the repo!
MSBuild.Microsoft.Build.CommandLine is the entrypoint for the Microsoft Build Engine (MSBuild.exe).
Microsoft.Build. TheMicrosoft.Build namespaces contain types that provide programmatic access to, and control of, the MSBuild engine.
Microsoft.Build.Framework. TheMicrosoft.Build.Framework namespace contains the types that define how tasks and loggers interact with the MSBuild engine. For additional information on this component, see ourMicrosoft.Build.Framework wiki page.
Microsoft.Build.Tasks. TheMicrosoft.Build.Tasks namespace contains the implementation of all tasks shipping with MSBuild.
Microsoft.Build.Utilities. TheMicrosoft.Build.Utilities namespace provides helper classes that you can use to create your own MSBuild loggers and tasks.
MSBuild is licensed under theMIT license.
About
The Microsoft Build Engine (MSBuild) is the build platform for .NET and Visual Studio.