Skip to content

pareshjoshi/MSBuildSdks

 
 

Repository files navigation

MSBuild SDKs

Build status

The MSBuild project SDKs are used to configure and extend your build.

What SDKs are available?

NuGet NuGet

Supports creating traversal projects which are MSBuild projects that indicate what projects to include when building your tree. For large project trees, they are replacements for Visual Studio solution files.

NuGet NuGet

Supports centrally managing NuGet package versions in a code base. Also allows adding global package references to all projects.

NuGet NuGet

Supports utility projects that do not compile an assembly.

What Are MSBuild SDKS?

MSBuild 15.0 introduced new project XML for .NET Core that we refer to as SDK-style. These SDK-style projects looks like:

<Project Sdk="Microsoft.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 Sdk="Microsoft.Cpp.Sdk">
  <Import Project="Sdk.props" Sdk="Microsoft.NET.Sdk" />

  <PropertyGroup>
    <TargetFramework>net46</TargetFramework>
  </PropertyGroup>

  <Import Project="Sdk.targets" Sdk="Microsoft.NET.Sdk" />
</Project>

More documentation is available here.

Older versions of MSBuild 15 required that SDKs be installed prior to using them. In MSBuild 15.6 and above, the SDKs are downloaded as NuGet packages instead.

Contributing

This project welcomes contributions and suggestions. Most contributions require you to agree to a Contributor License Agreement (CLA) declaring that you have the right to, and actually do, grant us the rights to use your contribution. For details, visit https://cla.microsoft.com.

When you submit a pull request, a CLA-bot will automatically determine whether you need to provide a CLA and decorate the PR appropriately (e.g., label, comment). Simply follow the instructions provided by the bot. You will only need to do this once across all repos using our CLA.

This project has adopted the Microsoft Open Source Code of Conduct. For more information see the Code of Conduct FAQ or contact opencode@microsoft.com with any additional questions or comments.

About

MSBuild project SDKs

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages

  • C# 100.0%