Talk: How to stop worrying and love MSBuild

MSBuild is the build engine for .NET. While it is powerful and flexible, it can also be verbose, opaque, and complex to work with. If you've been following the development of .NET Core, you may have felt like the project.json project file format was a breath of fresh air and been dismayed at the decision to switch to MSBuild as the build engine for .NET Core.

However, all is not lost! As part of moving the .NET Core tooling to MSBuild, we’ve also made major improvements to MSBuild and to the end-to-end project experience. We’ve taken the goodness that project.json had, like simple human-editable project files and easy multi-targeting, and brought it to the new and improved .csproj files.

In this session, we’ll look at how to work with these new and improved project files. We’ll see how to customize the defaults that are applied to the project, how to multi-target to different .NET targets, and how to consume and create NuGet packages. Then we’ll cover the basics of MSBuild, learn how to extend and integrate with the build process, and learn to investigate and debug problems with our builds.

When we’re done, you should be confident in your ability to take advantage of the improvements to MSBuild projects, extend the build process with your own operations, and investigate and fix problems you encounter with your build.