SDK .NET, MSBuild et contrôle de version Visual Studio

Le contrôle de version du Kit de développement logiciel (SDK) .NET et la façon dont il se rapporte à Visual Studio et MSBuild peut prêter à confusion. Versions MSBuild avec Visual Studio également incluses dans le SDK .NET. Le SDK a une version minimale de MSBuild et de Visual Studio avec laquelle il fonctionne, et il ne se charge pas dans une version de Visual Studio antérieure à cette version minimale.

Gestion de version

La première partie de la version du SDK .NET correspond à la version .NET qu’il inclut, sur laquelle il fonctionne et qu’il cible par défaut. La bande de fonctionnalités commence à 1 et augmente pour chaque version mineure de Visual Studio tous les trimestres. La version de patch incrémente avec les mises à jour de maintenance de chaque mois.

Par exemple, la version 7.0.203, fournie avec .NET 7, est la deuxième version mineure de Visual Studio depuis la version 7.0.100, et le troisième patch depuis la version 7.0.200.

Cycle de vie

La période de prise en charge du SDK correspond généralement à celle de la version de Visual Studio qui l’inclut.

Version du SDK Version MSBuild/Visual Studio Date d’expédition Cycle de vie
2.1.5xx 15,9 Novembre 2018 Août 2021
2.1.8xx 16.2 (sans VS) Juillet 2019 Août 2021
3.1.1xx 16.4 Décembre 2019 Octobre 2021
3.1.4xx 16.7 Août 2020 Décembre 2022
5.0.1xx 16.8 Novembre 2020 Mars 2021
5.0.2xx 16,9 Mars 2021 Mai 2022
5.0.3xx 16,10 Mai 2021 Août 2021
5.0.4xx 16.11 Août 2021 Mai 2022
6.0.1xx 17,0 Novembre 2021 Nov 20241
6.0.2xx 17.1 Février 2022 Mai 2022
6.0.3xx 17.23 Mai 2022 Octobre 2023
6.0.4xx 17.3 Août 2022 24 novembre2
7.0.1xx 17.4 Novembre 2022 Mai 241
7.0.2xx 17.53 Février 2023 Mai 2023
7.0.3xx 17.6 Mai 2023 Mai 24
7.0.4xx 17,7 Août 2023 Mai 242
8.0.1xx 17.8 Novembre 2023 TBD
8.0.2xx 17.93 Février 2024 À définir
8.0.3xx 17.10 Mai 24 TBD

Notes

Le ciblage net6.0 est officiellement pris en charge dans Visual Studio 17.0+ uniquement. Le ciblage net7.0 est officiellement pris en charge dans Visual Studio 17.4+ uniquement. Le ciblage de net8.0 est officiellement pris en charge dans Visual Studio 17.8+ uniquement.

1 . Les bandes de fonctionnalités du SDK .1xx sont prises en charge tout au long du cycle de vie des principales versions de .NET. Pendant la période de support étendue, la prise en charge est limitée aux correctifs de sécurité et aux correctifs de sécurité à priorité élevée minimum pour Linux uniquement. Pour découvrir plus d’informations sur le raisonnement de ce support étendu, consultez Prise en charge de la génération source.

2Les bandes de fonctionnalités du SDK .NET .4xx sont prises en charge pendant la durée de vie du runtime correspondant en tant qu’installations autonomes.

3 6.0.300, 7.0.200 et 8.0.200 nécessitent des versions plus récentes de Visual Studio. Pour plus d’informations, consultez les règles de prise en charge.

Cycle de vie de Visual Studio 2019

Cycle de vie de Visual Studio 2022

Ciblage et règles de support

À compter du SDK .NET 7.0.100 et du SDK .NET 6.0.300, une stratégie a été mise en place concernant les versions de MSBuild et Visual Studio dans lesquelles une version donnée du SDK .NET s’exécute. Cette stratégie est la suivante :

  • Chaque nouveau TargetFramework nécessite une nouvelle version de Visual Studio ou une nouvelle version de dotnet.
  • La première version de Visual Studio qui prend en charge un nouveau TargetFramework devient un plancher pour les bandes de fonctionnalités de ce Kit de développement logiciel (SDK) pour la surface de l’API Roslyn, les cibles MSBuild, les générateurs de source, les analyseurs, etc.
  • La première version d’un nouveau SDK .NET qui prend en charge un nouveau TargetFramework peut toujours être utilisée avec la version précédente de Visual Studio pour permettre un trimestre pour la migration des outils et de l’infrastructure (actions et pipelines, par exemple).
Kit SDK Version Visual Studio
fournie avec le SDK
Version minimale de Visual Studio TargetFramework max dans
version minimale de Visual Studio
TargetFramework max dans dotnet
6.0.100 17.0 16.11 Net5.0 Net6.0
6.0.200 17.1 17.0 Net6.0 Net6.0
6.0.300 17.2 17.0 Net6.0 Net6.0
6.0.400 17.3 17.0 Net6.0 Net6.0
7.0.100 17.4 17.3 Net6.0 Net7.0
7.0.200 17.5 17.4 Net7.0 Net7.0
7.0.300 17.6 17.41 Net7.0 Net7.0
7.0.400 17,7 17.4 Net7.0 Net7.0
8.0.100 17.8 17,7 Net7.0 Net8.0
8.0.200 17.9 17.8 Net8.0 Net8.0
8.0.300 17.10 17.8 Net8.0 Net8.0

Notes

Le tableau montre comment ces règles de contrôle de version seront appliquées à l’avenir, à compter du SDK .NET 7.0.100 et du SDK .NET 6.0.300. Il montre également comment la stratégie aurait été appliquée aux versions précédemment fournies du SDK .NET si elle avait été en place. Toutefois, les conditions requises pour les versions précédentes du kit de développement logiciel (SDK) ne changent pas, à savoir que la version minimale requise de Visual Studio pour le kit de développement logiciel (SDK) .NET 6.0.100 ou 6.0.200 reste la version 16.10.

1 Un changement cassant dans la version 7.0.300 pour le développement Blazor et Razor impose l’utilisation de Visual Studio version 17.6 ou ultérieure. Pour plus d’informations, consultez Problème dotnet/razor 8718.

Afin de garantir la cohérence des outils, vous devez utiliser dotnet build plutôt que msbuild pour générer votre application lorsque cela est possible.

Préversions

Les versions principales du SDK .NET sont généralement publiées quelques jours après une préversion de Visual Studio. Bien qu’il existe d’autres combinaisons qui fonctionnent, seule la dernière préversion publiée est testée et officiellement prise en charge. Le tableau suivant montre avec quelle version de Visual Studio chaque préversion de .NET a été testée avant d’être publiée.

Préversion du SDK Version de Visual Studio
9.0.100 Préversion 1 17.10 Préversion 1
9.0.100 Préversion 2 17.10 Préversion 2
9.0.100 Préversion 3 17.10 Préversion 3

Référence