Search code examples
.netdotnet-sdk

What's the difference between the Net SDK release patch


When you go to download https://dotnet.microsoft.com/en-us/download/dotnet/6.0 the latest version of the Net SDK (for example 6.0.14) you get the option to download 6.0.406, 6.0.309, and 6.0.114.

According to How the .Net Runtime SDK is versioned page the last increment means patch a combination of MINOR and PATCH.

If it's a patch why does it have different versions? Shouldn't 406 include everything patched also in 309 and 114?

What does the last number really mean? How do I know which one of them I should take?


Solution

  • It seems the SDK patch version mentioned in the Overview of how .NET is versioned is based on the corresponding Visual Studio minor version. It looks like the actual patch (114, 309) is based on the minor part of the earliest Visual Studio version that supports that SDK. Except for 4xx, which is standalone. Except when it isn't.

    So for .NET versions 6.0.13 or 6.0.14, the SDK versions that come bundled in a Visual Studio patch upgrade are 100*VS.Minor+100, for example:

    • SDK 309 comes in VS 2022 17.2.13 and SDK 114 in VS 17.0.19
    • SDK 406 is standalone.

    In 6.0.11 though, which is supported in VS 17.3, 403 was used (3*100 +100).

    The recommended download link points to the 4xx version so I guess the lower numbers are only needed if you use an earlier VS version