MSBuild is going cross-platform with .NET Core!
We have some exciting new developments to share – an update on our open source development, our ongoing cross-platform work, and more.
Going forward, we will post everything around MSBuild and build tools in general here on the .NET blog. You can still check out the many interesting tips and tricks that we earlier posted on the MSBuild Team blog.
MSBuild is now open source, and it is going cross-platform.
The .NET Compiler Platform (“Roslyn”) has been open source for a while now, Microsoft is taking .NET open source and cross-platform, and the ASP.NET 5 Runtime is open source and cross-platform as well. And as of March, MSBuild is open source on GitHub and part of the .NET Foundation, too. The sources on GitHub are closely aligned with the version that ships with Visual Studio. You may notice a few differences, but we’ll prune those discrepancies over time.
We got off to a good start with working in the open on GitHub: We are currently tracking 54 open issues, 30 are closed. We accepted 69 pull requests out of 82 that are now closed. 19 different people contributed, many outside of the Microsoft organization. There are 389 forks already, we got 2093 stars, and 323 people are watching. Many thanks to everyone who participated already!
Immediately after open-sourcing, we started work on a version of MSBuild that runs on Linux and Mac using the Mono software platform. This let us find and fix many Windows-specific parts of our code. Moving forward we’ve decided to switch gears and bet on .NET Core as our runtime, the open source, cross-platform version of .NET. This work is happening in the xplat branch on GitHub. We are tracking all the issues that we have to tackle on GitHub.
Porting MSBuild to .NET Core will take a while. As we do all development in the open on GitHub, you are welcome to join in and pick up an issue that is up-for-grabs. At the end, we want to have a single open source code base that works cross-platform, and from which we also build the MSBuild package that ships with Visual Studio.
The core principles of MSBuild haven’t changed much since it was launched in 2005, but the technology around MSBuild has evolved: multi-core processors are common-place now, much of our computing and storage needs are now met by cloud services with virtually unlimited resources, and many software projects have ballooned in size and are more difficult than ever to manage. We want to embrace these changes going forward. When looking at the next evolution step, we have a few goals in mind:
- drastic simplification of how you author and maintain build specs,
- first-class support for packages,
- hugely improved performance by leveraging the cloud,
- unprecedented reliability through better knowledge of dependencies.
Stay tuned to learn more about these exciting new developments, and other tips and tricks around MSBuild.
Meet the team behind MSBuild.
MSBuild has a long history: It started out in 2005 as a part of the .NET Framework itself, and became an integral component of Visual Studio over time. Most recently, Microsoft’s build engine found a new home in the Tools for Software Engineers (TSE) team in Microsoft’s Cloud and Enterprise group.
TSE’s mission is Enabling Microsoft to accelerate software development, benefitting all engineers in Microsoft as well as all developers around the world who are using Microsoft technology. Internally, TSE is already running a cloud-based build and test system, managing build outputs and packages as well, streamlining code reviews, gaining insights by mining all of the data that flows through our pipelines, and more.
We are hiring!
Are you passionate about software engineering practices in general or MSBuild in particular? The Tools for Software Engineers team is hiring! Check out our open positions, or drop us an email at email@example.com.