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. Les versions de MSBuild accompagnant Visual Studio sont é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

Le numéro de version du Kit de développement logiciel (SDK) .NET utilise le format major.minor.patch, où :

  • major.minor correspond à la version du .NET que le Kit de développement logiciel (SDK) inclut, exécute et cible par défaut.
  • Le chiffre des centaines de patch identifie la bande de caractéristiques, par exemple, 1xx, 2xx, 3xx ou 4xx. La bande de fonctionnalités commence à 1 et augmente pour chaque version trimestrielle du Kit de développement logiciel (SDK) .NET.
  • Les deux derniers chiffres de patch sont la version corrective, qui est incrémentée à chaque mise à jour de maintenance mensuelle.

Par exemple, la version 7.0.203 est fournie avec .NET 7, est la deuxième version trimestrielle de la bande de fonctionnalités depuis la version 7.0.100, et est le troisième correctif depuis la publication de 7.0.200.

Une installation de Visual Studio comprend une copie unique du SDK .NET. Si vous mettez à jour votre instance de Visual Studio, le SDK .NET installé par Visual Studio est également mis à jour, y compris les bandes de fonctionnalités et les bandes majeures du SDK .NET. Si vous souhaitez utiliser un SDK .NET différent de celui installé par Visual Studio, vous pouvez l'installer à partir de la page de téléchargement .NET, et la mise à jour de Visual Studio ne touchera pas cette version. Vous êtes responsable de la mise à jour de cette copie du SDK .NET à partir de ce moment-là.

À compter de Visual Studio 18.0, Visual Studio fournit des versions mineures mensuelles, tandis que le Kit de développement logiciel (SDK) .NET continue d’être livré tous les trimestres. Les versions de Visual Studio entre les versions trimestrielles du Kit de développement logiciel (SDK) .NET contiennent uniquement les versions correctives du dernier SDK .NET.

Remarque

Le SDK .NET permet de cibler les versions inférieures de .NET, c'est pourquoi nous vous recommandons de toujours mettre à jour votre SDK .NET en même temps que votre version de Visual Studio.

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.

Afficher les versions .NET non prises en charge
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 '21 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 24 novembre
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 novembre
7.0.1xx 17.4 Novembre 2022 Mai 24
7.0.2xx 17.53 Fév. '23 Mai 2023
7.0.3xx 17.6 Mai 2023 Mai 24
7.0.4xx 17,7 Août 2023 Mai 24

Versions .NET prises en charge

Version du SDK Version MSBuild/Visual Studio Date d’expédition Cycle de vie
8.0.1xx 17.8 Novembre 2023 26 novembre1
8.0.2xx 17,9 Février 2024 Mai 24
8.0.3xx 17.10 Mai 24 Jan '26
8.0.4xx 17.11 Août 24 26 novembre2
9.0.1xx 17.12 24 novembre Mai '26
9.0.2xx 17.13 25 février Mai '25
9.0.3xx 17.14 Mai '25 26 novembre2
10.0.1xx 18,0 25 novembre Novembre '28
10.0.2xx 18.4 Mars '26 Mai '26

Remarque

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 en savoir plus sur la justification de ce support étendu, consultez Prise en charge de la génération source.

2 Les bandes de fonctionnalités finales du Kit de développement logiciel (SDK) .NET d’une version majeure sont prises en charge pour la durée du runtime correspondant en tant qu’installations autonomes.

Cycle de vie de Visual Studio 2026

Cycle de vie de Visual Studio 2022

Cycle de vie de Visual Studio 2019

Ciblage et règles de support

La stratégie suivante détermine les versions de MSBuild et de Visual Studio compatibles avec une version donnée du SDK .NET :

  • 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 une référence de base pour les niveaux de fonctionnalités de ce Kit de développement logiciel (SDK) concernant la surface de l'API Roslyn, les cibles MSBuild, les générateurs de code 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).
SDK Version de Visual Studio
le SDK est livré avec
Version minimale de Visual Studio Framework cible maximal dans
version minimale de Visual Studio
Max TargetFramework dans dotnet
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
8.0.400 17.11 17.8 Net8.0 Net8.0
9.0.100 17.12 17.11 Net8.0 Net9.0
9.0.200 17.13 17.12 Net9.0 Net9.0
9.0.300 17.14 17.12 Net9.0 Net9.0
10.0.100 18,0 17.14 Net9.0 Net10.0
10.0.200 18.4 18,0 Net10.0 Net10.0

Remarque

Le tableau montre comment ces règles de gestion de version sont appliquées, à partir du KIT SDK .NET 7.0.100 et du KIT 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.

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

Le ciblage net9.0 est officiellement pris en charge dans Visual Studio 17.12+ uniquement.

net10.0 Le ciblage est officiellement pris en charge dans Visual Studio 18.0+ uniquement.

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.

Matrice de prise en charge du Kit de développement logiciel (SDK) et de Visual Studio

Bien que la plupart des développeurs utilisent le Kit de développement logiciel (SDK) .NET fourni avec leur version de Visual Studio, certaines configurations impliquent des versions incompatibles du SDK et de Visual Studio. Il n’existe aucune garantie que chaque version de Visual Studio fonctionne avec chaque Kit de développement logiciel (SDK) .NET pris en charge. Les configurations les plus courantes sont testées pour garantir un meilleur effort de compatibilité.

Compatibilité rétroactive et progressive

  • Configuration principale prise en charge : utilisez la version du Kit de développement logiciel (SDK) groupée avec votre installation de Visual Studio
    • Visual Studio 17.14 et .NET 9.0.3xx
    • Visual Studio 18.0 et .NET 10.0.1xx
  • Compatibilité descendante : L’utilisation de la dernière bande de fonctionnalités de la version précédente du SDK (par exemple, 8.0.4xx dans Visual Studio 17.14) est prise en charge avec une compatibilité optimale. L’équipe .NET détermine quand rétroporter les correctifs en fonction du risque et de l’impact du client. Même si les SDK antérieurs à la dernière version peuvent fonctionner, l’équipe .NET ne les teste pas et ne fait pas d'effort pour garantir la compatibilité.
  • Compatibilité ascendante : l’utilisation d’un SDK plus récent (par exemple, le SDK .NET 10 dans Visual Studio 17.14) est autorisé sans blocage, mais le ciblage de runtimes plus récents dans les versions antérieures de Visual Studio n’est pas pris en charge et génère un avertissement de build.

Conseils

Utilisez le Kit de développement logiciel (SDK) fourni avec votre instance Visual Studio (ou la dernière version disponible dans CI ou Visual Studio Code), car cette version a toujours les fonctionnalités les plus récentes, notamment les mises à jour de sécurité.

Prise en charge du ciblage de bas niveau

Le Kit de développement logiciel (SDK) .NET gère la prise en charge du ciblage pour les versions .NET obsolètes. Le SDK 10.0.100 peut générer des applications ciblant net9.0 jusqu’à netcoreapp1.0.

Principes à suivre

  • Prise en charge existante conservée : la prise en charge du ciblage des versions hors support reste dans le Kit de développement logiciel (SDK) sans suppression active. Les clients qui mettent à niveau leur sdk ou version de Visual Studio ne doivent pas avoir leurs builds rompues simplement en ciblant une version .NET plus ancienne.
  • Nouvelles fonctionnalités : les nouvelles fonctionnalités du Kit de développement logiciel (SDK) ne sont pas nécessaires pour prendre en charge les versions hors support, sauf si cette prise en charge présente un coût ou un risque considérables.
  • Correctifs de rupture : si des problèmes se produisent lors du ciblage des versions hors support, un correctif est appliqué en fonction du coût du correctif. L’objectif est d’empêcher que les clients soient impactés lors de la mise à niveau.

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
10.0.100 RC 1 18.0.0 Insiders (11010.61)
10.0.100 RC 2 18.0.0 Insiders (1111.16)
11.0.100 Preview 1 18.4.0 Insiders
11.0.100 Preview 2 18.5.0 Insiders

Référence