Remarque
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de vous connecter ou de modifier des répertoires.
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de modifier des répertoires.
Lorsque vous commencez à créer des applications Windows, vous remarquerez des références à plusieurs numéros de version différents : la version du système d'exploitation Windows, le sdk Windows et le SDK d'application Windows. Ne vous inquiétez pas : pour la plupart des nouveaux projets, Visual Studio définit des valeurs par défaut sensibles et vous n'aurez pas besoin de réfléchir à cela du tout. Toutefois, quand vous devez cibler une version spécifique du système d’exploitation, comprendre pourquoi une API n’est pas disponible ou configurer votre fichier projet, cet article explique comment les éléments s’adaptent ensemble et quels choix faire.
Definitions
| Composant | Qu’est-ce que c’est ? | Format de version | Comment elle est mise à jour |
|---|---|---|---|
| version du système d’exploitation Windows | Système d’exploitation installé sur l’appareil de l’utilisateur. |
YYHX (par exemple, 24H2, 25H2) |
Windows Update (mises à jour annuelles des fonctionnalités) |
| sdk Windows (SDK de plateforme) | En-têtes, bibliothèques et métadonnées pour les API Win32, WinRT et COM. |
10.0.BBBBB.x (par exemple, 10.0.26100.0) |
Installé avec Visual Studio ou le programme d’installation autonome |
| Kit de développement logiciel (SDK) pour application Windows | Infrastructure distribuée par NuGet fournissant WinUI 3, le cycle de vie des applications, le fenêtrage et d’autres fonctionnalités d’application modernes. |
Major.Minor.Patch (par exemple, 1.8.1) |
Mise à jour du package NuGet dans votre projet |
nommage de version du système d’exploitation Windows
Windows 11 est livré avec des mises à jour de fonctionnalités majeures selon le modèle de dénomination YYHX :
- AAAA = année civile à deux chiffres
- H1 = première moitié de l’année ; H2 = deuxième moitié de l’année
La plupart des versions majeures ont historiquement été livrées à l’automne (H2), mais les versions H1 se produisent également.
| Version du système d’exploitation Windows | Année de sortie | Numéro de build du système d’exploitation |
|---|---|---|
| Windows 11 22H2 | 2022 | 22621 |
| Windows 11 23H2 | 2023 | 22631 |
| Windows 11 24H2 | 2024 | 26100 |
Règle: Le numéro de build du système d’exploitation sur l’appareil de l’utilisateur détermine les API de plateforme disponibles au moment de l’exécution.
Conseil / Astuce
Vérifiez le numéro de build du système d’exploitation sur n’importe quel appareil en appuyant sur Win + R et en tapant winver.
Correspondance entre le SDK Windows et les versions du système d’exploitation
Chaque famille de versions du KIT de développement logiciel (SDK) Windows correspond à une version Windows du système d’exploitation. Le numéro de build principal du SDK correspond généralement au numéro de build du système d’exploitation, bien que certaines mises à jour de fonctionnalités du système d’exploitation (fournies en tant que packages d’activation) partagent la même famille de SDK qu’une version antérieure.
| famille de SDK Windows | Build du système d’exploitation | Correspond à Windows version |
|---|---|---|
| 10.0.22621.x | 22621 | Windows 11 22H2 / 23H2 |
| 10.0.26100.x | 26100 | Windows 11 24H2 |
Note
Dans une famille de SDK, le dernier composant (par exemple, 10.0.26100).2454) représentent des mises à jour de maintenance mensuelles qui ajoutent des correctifs de bogues, mais pas de nouvelles API.
Règle: L’installation d’un Windows SDK donné accorde un accès au temps de compilation à toutes les API à partir de cette version du système d’exploitation et de toutes les versions antérieures. Les API sont cumulatives.
versions de SDK d'application Windows
Le SDK d'application Windows est indépendant du système d’exploitation Windows et du SDK Windows. Il est publié selon son propre rythme sous forme de package NuGet.
| Kit de développement logiciel (SDK) d’application Windows | Date de sortie | Système d’exploitation minimal pris en charge | Paquet NuGet |
|---|---|---|---|
| 2.2 | 2026-06-09 | Windows 10 1809 (build 17763) | Microsoft.WindowsAppSDK 2.2.x |
| 2.1 | 2026-05-21 | Windows 10 1809 (build 17763) | Microsoft.WindowsAppSDK 2.1.x |
| 2.0 | 2026-04-29 | Windows 10 1809 (build 17763) | Microsoft.WindowsAppSDK 2.0.x |
| 1.8 | 09/09/2025 | Windows 10 1809 (build 17763) | Microsoft.WindowsAppSDK 1.8.x |
| 1.7 | 2025-03-18 | Windows 10 1809 (build 17763) | Microsoft.WindowsAppSDK 1.7.x |
Règle : Vous pouvez utiliser la dernière SDK d'application Windows sur les versions antérieures du système d’exploitation (retour à son minimum indiqué). La version SDK d'application Windows n’a pas besoin de correspondre à la version du système d’exploitation Windows ou Windows version du SDK.
Pour obtenir la matrice complète de prise en charge, consultez Versions de Windows prises en charge par SDK d'application Windows.
Relation entre les trois composants
Your App (.exe / .msix)
│
├── References: Windows App SDK (NuGet package, e.g., 2.2)
│ • Provides: WinUI 3, app lifecycle, windowing, push notifications
│ • Updated: independently via NuGet
│ • Constraint: has a minimum supported OS version
│
├── Compiled against: Windows SDK (e.g., 10.0.26100)
│ • Provides: Win32, WinRT, COM API declarations
│ • Updated: with Visual Studio or standalone installer
│ • Constraint: determines which APIs are visible at compile time
│
└── Runs on: Windows OS (e.g., Windows 11 24H2, build 26100)
• Provides: actual API implementations at runtime
• Updated: Windows Update
• Constraint: determines which APIs are callable at runtime
Relations clés :
- SDK d'application Windows ne remplace pas le SDK Windows. Vous avez besoin des deux.
- La version Windows SDK peut être plus récente que le système d’exploitation sur lequel votre application s’exécute (utilisez des vérifications d’exécution pour les API plus récentes).
- La version SDK d'application Windows est complètement indépendante : mettez-la à jour sans changer d’autre chose.
- Vous ne pouvez pas appeler une API de plateforme au moment de l’exécution si la build du système d’exploitation de l’utilisateur est antérieure à la build qui l’a introduite, quel que soit le SDK sur lequel vous avez compilé.
Configuration du fichier projet
Les propriétés MSBuild de votre fichier projet contrôlent le ciblage de la plateforme. Les noms de propriétés diffèrent légèrement entre C# et C++ :
Fichier projet C# (.csproj)
Dans les projets de .NET de style SDK (utilisés par les modèles WinUI 3 et SDK d'application Windows), la version de la plateforme Windows est incorporée dans le TFM (Target Framework Moniker) :
<PropertyGroup>
<!-- The TFM includes the Windows SDK version you compile against -->
<TargetFramework>net8.0-windows10.0.26100.0</TargetFramework>
<!-- The minimum OS version your app supports -->
<SupportedOSPlatformVersion>10.0.19041.0</SupportedOSPlatformVersion>
<!-- Or equivalently: -->
<!-- <TargetPlatformMinVersion>10.0.19041.0</TargetPlatformMinVersion> -->
</PropertyGroup>
<ItemGroup>
<!-- Windows App SDK (independent of the above) -->
<PackageReference Include="Microsoft.WindowsAppSDK" Version="2.2.0" />
</ItemGroup>
Note
SupportedOSPlatformVersion et TargetPlatformMinVersion sont équivalents dans les projets de style SDK. L’analyseur de compatibilité de plateforme sdk .NET utilise SupportedOSPlatformVersion pour émettre des avertissements au moment de la compilation lorsque vous appelez des API qui peuvent ne pas être disponibles sur votre version minimale du système d’exploitation.
Fichier projet C++ (.vcxproj)
<PropertyGroup>
<!-- Note: C++ uses "WindowsTargetPlatform" prefix -->
<WindowsTargetPlatformVersion>10.0.26100.0</WindowsTargetPlatformVersion>
<WindowsTargetPlatformMinVersion>10.0.17763.0</WindowsTargetPlatformMinVersion>
</PropertyGroup>
| Propriété (C#) | Purpose | Effet si la valeur est trop élevée | Effet si la valeur est trop faible |
|---|---|---|---|
Version Windows dans TFM (TargetFramework) |
Surface de l’API au moment de la compilation | Active les avertissements de l’analyseur de plateforme (un avantage, pas un problème) | Les API plus récentes sont invisibles ; Erreurs du compilateur si vous les référencez |
SupportedOSPlatformVersion / TargetPlatformMinVersion |
Système d’exploitation minimal pour l’installation | Moins d’utilisateurs peuvent installer votre application | Vous devez ajouter des vérifications d’exécution avant d’appeler des API plus récentes |
Version Microsoft.WindowsAppSDK |
WinUI 3 et fonctionnalités du framework | N/A (utilisez la dernière version stable) | Contrôles WinUI récents ou fonctionnalités récentes du framework manquants |
Guide de décision : choix des versions
Utilisez les règles suivantes pour sélectionner des versions pour un nouveau projet :
-
Définissez la version de la plateforme Windows dans votre module TFM sur le kit SDK Windows stable le plus récent (par exemple).
net8.0-windows10.0.26100.0Cela vous donne la plus grande surface d’API au moment de la compilation et active les avertissements de l’analyseur de compatibilité de plateforme pour les API indisponibles sur votre système d’exploitation minimal. -
Définissez
SupportedOSPlatformVersion(ouTargetPlatformMinVersion) en fonction de votre audience :- Applications d’entreprise avec appareils gérés : correspondent au système d’exploitation minimum pris en charge par votre organisation.
- Applications grand public (portée la plus large) :
10.0.19041.0(Windows 10 2004) ou10.0.17763.0(Windows 10 1809). - Applications utilisant des fonctionnalités d’une version de système d’exploitation spécifique : définissez le numéro de build de cette version.
- Utilisez toujours la dernière SDK d'application Windows stable. Il n’existe aucune pénalité de compatibilité ; prend en charge Windows 10 1809.
- N’utilisez jamais les versions préliminaires/expérimentales du Kit de développement logiciel (SDK) en production.
Vérifications de disponibilité de l’API runtime
Lorsque la version de la plateforme Windows dans votre TFM est supérieure SupportedOSPlatformVersionà , certaines API visibles au moment de la compilation peuvent ne pas exister sur l'appareil de l'utilisateur. L’analyseur de compatibilité de plateforme .NET vous avertit de ces informations au moment de la compilation, mais vous devez également vérifier la disponibilité au moment de l’exécution avant de les appeler.
Modèle : Vérifier le contrat d’API (API WinRT)
using Windows.Foundation.Metadata;
if (ApiInformation.IsApiContractPresent("Windows.Foundation.UniversalApiContract", 15))
{
// Safe to call APIs introduced in this contract version.
// For example, use a newer composition API:
}
else
{
// Fallback for older OS versions
}
Modèle : Rechercher un type spécifique
if (ApiInformation.IsTypePresent("Windows.UI.Composition.SceneVisual"))
{
// Safe to use SceneVisual
}
Modèle : Rechercher une méthode spécifique
if (ApiInformation.IsMethodPresent("Windows.Storage.StorageFile", "GetFileFromPathForUserAsync"))
{
// Safe to call this method
}
Règle: Si vous ignorez ces vérifications et appelez une API indisponible, l’application échoue au moment de l’exécution. L’échec exact dépend du type d’API : les exceptions courantes incluent TypeLoadException, MissingMethodExceptionou une erreur spécifique à la plateforme.
Questions courantes
« Quel Windows SDK dois-je utiliser ? »
Utilisez le dernier Windows SDK disponible (actuellement 10.0.26100). Vous pouvez toujours compiler sur un kit SDK plus récent que votre minimum cible, ce qui affecte uniquement ce qui est visible au moment de la compilation.
« Dois-je mettre à jour le Kit de développement logiciel (SDK) Windows lorsque je mets à jour le SDK d'application Windows ? »
Non. Ils sont indépendants. Vous pouvez effectuer une mise à jour Microsoft.WindowsAppSDK de la version 1.7 vers la version 1.8 sans modifier votre version du Kit de développement logiciel (SDK) Windows.
« Mon application cible Windows 10. Puis-je utiliser le SDK d'application Windows ?
Yes. Le SDK d'application Windows prend en charge Windows 10 version 1809 (build 17763) et versions ultérieures. Définissez votre SupportedOSPlatformVersion valeur en conséquence.
« Que se passe-t-il si je compile sur sdk 10.0.26100, mais que l’utilisateur exécute Windows 11 22H2 (build 22621) ? »
Les API introduites entre la build 22621 et 26100 sont visibles dans votre code, mais échouent au moment de l’exécution, sauf si vous ajoutez des vérifications de disponibilité d’API. Les API de 22621 et antérieures fonctionnent normalement.
« Comment savoir quel numéro de build a introduit une API spécifique ? »
Consultez la page de référence de l'API sur Microsoft Learn. La section Configuration requise répertorie la build minimale du système d’exploitation (en tant que version de contrat d’API ou version Windows).
Résumé des règles
| Rule | Description |
|---|---|
| Version du système d’exploitation = fonctionnalité d’exécution | La build du système d’exploitation de l’utilisateur détermine les API qui fonctionnent réellement au moment de l’exécution. |
| Windows SDK = surface de compilation | Le Kit de développement logiciel (SDK) que vous installez détermine les API qui sont visibles dans votre code. |
| SDK d'application Windows = infrastructure d’application | Mise à jour via NuGet, indépendamment des versions du KIT de développement logiciel (SDK) du système d’exploitation et de la plateforme. |
| Le kit de développement logiciel (SDK) ≥ système d’exploitation est sécurisé | Vous pouvez compiler sur un kit SDK plus récent que votre cible minimale de système d’exploitation. |
| Les vérifications du runtime sont requises | Si votre module TFM cible une version Windows supérieure à celle de SupportedOSPlatformVersion, protégez les appels d’API plus récents avec des vérifications d’exécution. |
| Rétrocompatibilité du SDK d’application Windows | Le SDK d'application Windows est compatible à partir de Windows 10, version 1809, quelle que soit sa version. |
Contenu connexe
Windows developer