Despite being shipped as part of Visual Studio 2017, custom MSBuild project SDKs remain a relatively niche feature with surprisingly sparse documentation and few real-world examples to learn from.
Much of what I have learned in this space has been pieced together through trial and error, combing through fragmented Microsoft documentation, reverse-engineering Microsoft's own complex .NET MSBuild project SDKs, tracing through MSBuild binlogs with the Structured Log Viewer and large MSBuild preprocessor outputs. The rest is owed to the generosity of a handful of developers who took the time to write about their experiences.
This work owes a great deal to those developers' efforts and they deserve acknowledgment. My only hope is that others wishing to develop custom MSBuild project SDKs find this work as beneficial as I found the work of those who came before me and that it advances the collective knowledge in this space.
- Gérald Barré (aka meziantou) - Creating a custom MSBuild SDK to reduce boilerplate in .NET projects
- Calvin Allen - Creating Your Own MSBuild SDK - It's Easier Than You Think!
- David Federman - Authoring MSBuild Project SDKs