Gallery

msbuild-sdks
My experimental MSBuild Sdk nuget packages
MSBuild SDKs
MSBuild SDKs are used to configure and extend your build. MSBuild 15.0 introduced a concept of an SDK which is an upgraded project XML Schema that we commonly refer as 'SDK-style' project. So MSBuild 15.0 and above is needed for the following SDKs
Available SDKs
MSBuild.Core.Sdk
Supports projects that do not compile to an assembly. This is usually the base SDK for other SDKs listed here.
MSBuild.NET.Legacy.Sdk
Supports only .NET Framework (Windows). Contains the original .NET Framework Build files that were included with MSBuild. Use them to slowly migrate your legacy projects to SDK-style.
MSBuild.NET.DefaultItems
An MSBuild Extension package for including various platfroms' (Android, Apple, Tizen, Web, Windows) default build items etc... in .NET projects. You can use this package in any SDK-style projects that extends Microsoft.NET.Sdk
like MSBuild.NET.Extras.Sdk
, etc...
MSBuild.NET.Extras.Sdk
Adds a few extra extensions to the SDK-style projects that are currently not available in Microsoft.NET.Sdk
SDK. This feature is being tracked in dotnet/sdk#491
NuGet.Packaging.Sdk
Supports NuGet Restore/Pack Tasks and Package authoring. It's basically an SDK wrappper around NuGet.Build.Packaging aka NuGetizer-3000 project, with NuGet Restore and Pack targets optimized for SDK-style.
Working
An MSBuild SDK, in a nutshell, is a packaged and versioned set of MSBuild tasks, props and targets that offer a specific set of functionalities to any project/solution build.
These SDK-style projects looks like:
<Project Sdk="MSBuild.NET.Sdk">
<PropertyGroup>
<TargetFramework>net46</TargetFramework>
</PropertyGroup>
</Project>
At evaluation time, MSBuild adds implicit imports at the top and bottom of the project like this:
<Project>
<Import Project="Sdk.props" Sdk="MSBuild.NET.Sdk"/>
<PropertyGroup>
<TargetFramework>net46</TargetFramework>
</PropertyGroup>
<Import Project="Sdk.targets" Sdk="MSBuild.NET.Sdk"/>
</Project>
By default, MSBuild requires that the SDKs must be installed prior to using them. But, for MSBuild 15.6 and above, the SDKs can be referenced as NuGet packages instead. More documentation is available here.
Contributing (TBA
)
It's kind of empty out here...