Kit de développement logiciel (SDK) Windows

Le SDK Windows (10.0.26100) pour Windows 11 fournit les derniers en-têtes, bibliothèques, métadonnées et outils de création d’applications Windows. Utilisez ce Kit de développement logiciel (SDK) pour générer des applications de plateforme Windows universelle (UWP) et Win32 pour Windows 11, version 24H2 et versions antérieures de Windows.

Pourboire

sdk d’application Windows
Le Kit de développement logiciel (SDK) d’application Windows fournit un ensemble unifié d’API et d’outils découplés du système d’exploitation et publiés pour les développeurs via des packages NuGet. Ces API et outils peuvent être utilisés de manière cohérente par n’importe quelle application de bureau sur Windows 11 et de bas niveau vers Windows 10, version 1809.

Commencer

Vous pouvez obtenir le SDK Windows de deux façons : l’installer à partir de cette page en sélectionnant le lien de téléchargement ou en sélectionnant « Kit de développement logiciel (SDK) Windows 11 (10.0.26100.0) » dans les composants facultatifs du programme d’installation de Visual Studio 2022. Avant d’installer ce Kit de développement logiciel (SDK) :

  • Passez en revue toutes les requises système requises
  • Quittez Visual Studio avant l’installation.
  • Passez en revue les notes de publication et les problèmes connus.

Dernière mise à jour : septembre 2024

Configuration requise

Le Kit de développement logiciel (SDK) Windows a la configuration système minimale suivante :

Systèmes d’exploitation pris en charge

  • Windows 11, version 21h2 ou ultérieure : Accueil, Professionnel, Éducation et Entreprise (LTSC n’est pas pris en charge pour UWP)
  • Windows 10, version 1507 ou ultérieure : Famille, Professionnel, Éducation et Entreprise (LTSB/LTSC et mode S ne sont pas pris en charge pour UWP)
  • Windows Server 2022, Windows Server 2019, Windows Server 2016 et Windows Server 2012 R2 (ligne de commande uniquement)
  • Windows 8.1
  • Windows 7 SP1

(Tous les outils ne sont pas pris en charge sur les systèmes d’exploitation antérieurs)

Configuration matérielle requise

  • Processeur 1,6 GHz ou plus rapide
  • 1 Go de RAM
  • 4 Go d’espace disque disponible

Conditions requises supplémentaires pour le Kit de développement logiciel (

L’installation sur Windows 8.1 et les systèmes d’exploitation antérieurs nécessite une mise à jour pour Runtime C universel dans Windows. Pour effectuer l’installation via Windows Update, veillez à installer les dernières mises à jour et correctifs recommandés à partir de Microsoft Update avant d’installer le Kit de développement logiciel (SDK) Windows.

Échantillons

Les exemples d’applications Windows sont désormais disponibles via GitHub . Vous pouvez parcourir le code sur GitHub, cloner une copie personnelle du référentiel à partir de Git ou télécharger une archive compressée de tous les exemples. Nous vous invitons à nous faire part de vos commentaires. N’hésitez donc pas à ouvrir un problème dans le référentiel si vous rencontrez un problème ou une question. Ces exemples sont conçus pour s’exécuter sur des appareils de bureau, mobiles et futurs qui prennent en charge la plateforme Windows universelle (UWP).

Versions précédentes du Kit de développement logiciel (SDK)

Les kits SDK et émulateurs précédemment publiés, y compris les détails de la mise à jour, sont disponibles sur la page d’archivage .

API Light Up

Lorsque vous utilisez de nouvelles API, envisagez d’écrire votre application pour qu’elle s’exécute correctement sur le plus grand éventail d’appareils Windows. Une application adaptative « s’allume » avec de nouvelles fonctionnalités partout où les appareils et la version de Windows les prennent en charge, mais sinon offre uniquement les fonctionnalités disponibles sur la version de la plateforme détectée. Pour plus d’informations sur l’implémentation, consultez l’articlede code adaptatif version .

Notes de publication et problèmes connus

Windows 11, build 10.0.26100.1742 (publiée le 24/9/2024)

Version correspondant à la version publique de Windows 11, version 24h2.

Windows 11, Build 10.0.26100 (publiée 22/22/2024)

Version initiale de la série 10.0.26100, pour correspondre à la préversion de Windows 11, version 24h2.

Windows 11, build 10.0.22621.3235 (publiée 2/29/2024)

Mise à jour de maintenance 10.0.22621.3235.

Windows 11, build 10.0.22621.2428 (publiée 10/24/2023)

Mise à jour de maintenance 10.0.22621.2428.

Windows 11, version 22H2, build 10.0.22621.1778

Update 10.0.22621.1778. Les fonctionnalités mises en surbrillance sont les suivantes :

  • Les API WindowTabManager permettent aux applications avec des interfaces à onglets de fournir des informations sur les onglets ouverts à l’interpréteur de commandes Windows.
  • Mises à jour des API HumanPresence pour améliorer la facilité d’utilisation et ajouter de nouveaux paramètres pour les capteurs qui prennent en charge les fonctionnalités de présence humaine.
  • Les API RemoteDesktop permettent aux applications de basculer entre un bureau distant et local.
Kit de développement logiciel (SDK) Windows pour Windows 11, version 22H2
  • Mise à jour de maintenance 10.0.22621.755. Inclut la prise en charge d’ARM64 pour la version VS 17.4
Kit de développement logiciel (SDK) Windows 10, version 2104
  • Suppression de l’API-ms-win-net-isolation-l1-1-0.lib. Les applications qui étaient liées à api-ms-win-net-isolation-l1-1-0.lib peuvent basculer vers oneCoreUAP.lib comme remplacement.

  • Suppression de irprops.lib. Les applications qui étaient liées à irprops.lib peuvent basculer vers bthprops.lib comme remplacement de dépôt.

  • Déplacez ENUM tagServerSelection de wuapicommon.h vers wupai.h et supprimez l’en-tête. Si vous souhaitez utiliser le tagServerSelection ENUM, vous devez inclure wuapi.h ou wuapi.idl.

  • Le pack d’API Windows 10 WinRT vous permet d’ajouter la dernière prise en charge des API Windows Runtime à vos bibliothèques et applications .NET Framework 4.5+ et .NET Core 3.0+. Pour accéder au pack d’API Windows 10 WinRT, consultez la package nuget Microsoft.Windows.SDK.Contracts.

  • La famille d’impression de fonctions désormais conforme aux règles d’arrondi IEEE 754 lors de l’impression de nombres à virgule flottante représentant exactement et honorera le mode arrondi demandé via des appels à fesetround. Le comportement hérité est disponible lors de la liaison avec legacy_stdio_float_rounding.obj.

  • Kit de certification des applications Windows. Plusieurs nouvelles API ont été ajoutées à la liste des API prises en charge dans le Kit de certification des applications et le Windows Store. S’il existe des API dans la liste prise en charge qui apparaissent grisées ou désactivées dans Visual Studio, vous pouvez apporter une petite modification à votre fichier source pour y accéder. Pour plus d’informations, consultez cette problème connu. Trouver d’autres mises à jour pour les tests.

  • Mises à jour du compilateur de messages (mc.exe) :

    • Détecte maintenant la marque d’ordre des octets Unicode (BOM) dans les fichiers .mc. Si le fichier .mc commence par un boM UTF-8, il est lu en tant que fichier UTF-8. Sinon, s’il commence par un boM UTF-16LE, il est lu en tant que fichier UTF-16LE. Si le paramètre -u a été spécifié, il sera lu en tant que fichier UTF-16LE. Sinon, il sera lu à l’aide de la page de codes actuelle (CP_ACP).
    • À présent, évitez les problèmes de règle à définition unique (ODR) dans les helpers ETW générés par mc-generated C/C++ causés par des macros de configuration en conflit (par exemple, lorsque deux fichiers .cpp avec des définitions conflictuelles de MCGEN_EVENTWRITETRANSFER sont liés dans le même binaire, les helpers ETW générés par MC respectent désormais la définition de MCGEN_EVENTWRITETRANSFER dans chaque fichier .cpp au lieu de choisir arbitrairement l’un ou l’autre).
  • Mises à jour du préprocesseur de trace Windows (tracewpp.exe) :

    • Prend en charge les fichiers d’entrée Unicode (.ini, .tpl et code source). Les fichiers d’entrée commençant par une marque d’ordre d’ordre d’octet UTF-8 ou UTF-16 sont lus en tant qu’Unicode. Les fichiers d’entrée qui ne commencent pas par un boM sont lus à l’aide de la page de codes actuelle (CP_ACP). Pour la compatibilité descendante, si le paramètre de ligne de commande -UnicodeIgnore est spécifié, les fichiers commençant par un boM UTF-16 sont traités comme vides.
    • Prend en charge les fichiers de sortie Unicode (.tmh). Par défaut, les fichiers de sortie sont encodés à l’aide de la page de codes actuelle (CP_ACP). Utilisez les paramètres de ligne de commande -cp :UTF-8 ou -cp :UTF-16 pour générer des fichiers de sortie Unicode.
    • Changement de comportement : tracewpp convertit désormais tout le texte d’entrée en Unicode, effectue le traitement en Unicode et convertit le texte de sortie en encodage de sortie spécifié. Les versions antérieures de tracewpp ont évité les conversions Unicode et effectué le traitement du texte en supposant un jeu de caractères sur un octet. Cela peut entraîner des changements de comportement dans les cas où les fichiers d’entrée ne sont pas conformes à la page de codes actuelle. Dans les cas où il s’agit d’un problème, envisagez de convertir les fichiers d’entrée en UTF-8 (avec boM) et/ou en utilisant le paramètre de ligne de commande -cp :UTF-8 pour éviter l’ambiguïté de codage.
  • Mises à jour de TraceLoggingProvider.h :

    • Évite les problèmes d’une règle de définition (ODR) causés par des macros de configuration en conflit (par exemple, lorsque deux fichiers .cpp avec des définitions conflictuelles de TLG_EVENT_WRITE_TRANSFER sont liés au même binaire, les helpers TraceLoggingProvider.h respectent désormais la définition de TLG_EVENT_WRITE_TRANSFER dans chaque fichier .cpp au lieu de choisir arbitrairement l’un ou l’autre).
    • Dans le code C++, la macro TraceLoggingWrite a été mise à jour pour permettre un meilleur partage de code entre des événements similaires à l’aide de modèles variadiciques.
  • Signature de vos applications. La signature Device Guard est une fonctionnalité Device Guard disponible dans le Microsoft Store pour Entreprises et Éducation, ce qui permet aux entreprises de garantir que chaque application provient d’une source approuvée. Consultez la documentation sur lede signature Device Guard.

  • Les en-têtes du Kit de développement logiciel (SDK) ont été mis à jour pour résoudre les erreurs lors de la compilation à l’aide du préprocesseur C conforme aux normes dans le compilateur MSVC cl.exe (/Zc :preprocessor, introduit dans VS 2019 v16.6).

  • Correction : « GdiplusTypes.h ne compile pas avec NOMINMAX ». consultez lesde commentaires visual Studio.

  • Lorsque vous générez avec /std :c11 ou /std :c17, vous obtenez maintenant :

    • C99 tgmath.h
    • Static_assert C11 dans assert.h
    • C11 stdalign.h
    • C11 stdnoreturn.h
  • Clang/LLVM pour Windows v11 ciblant ARM64 n’est pas compatible avec la dernière version winnt.h

    • Pour contourner ce problème, utilisez la version précédente du Kit de développement logiciel (SDK) Windows 10 (build 19041) ou clang/LLVM pour Windows v10 lors du ciblage des plateformes ARM64
  • DirectXMath (y compris la version 3.16 de cette version) n’est pas compatible avec Clang/LLVM pour Windows sur ARM64.

  • Le cas de certains fichiers d’en-tête a été modifié pour les normaliser pour les systèmes de fichiers sensibles à la casse :

    • OAIdl.h, ObjIdl.h, ObjIdlbase.h, OCIdl.h, Ole2.h, OleAuto.h et OleCtl.h ont tous été fabriqués en minuscules.
    • Pour les builds Clang/LLVM pour Windows, pour prendre en charge les versions antérieures et les derniers SDK Windows 10 sans avertissements, ajoutez -Wno-nonportable-system-include-path à l’interface CLI ou les #pragma suivantes dans la source :

    #ifdef __clang__

    #pragma clang diagnostic ignored "-Wnonportable-system-include-path"

    #endif

Mise à jour de maintenance du Kit de développement logiciel (SDK) Windows 10 version 2004 (publiée 12/16/2020)

Cette version contient les fichiers suivants. Si vous rencontrez ces problèmes, nous vous recommandons de mettre à jour votre version du Kit de développement logiciel (SDK) dès que possible pour les éviter :

  • Résolution d’incidents imprévisibles et difficiles à diagnostiquer lors de la liaison des bibliothèques parapluie et des bibliothèques de système d’exploitation natives (par exemple, onecoreuap.lib et kernel32.lib)
  • Problème résolu qui empêchait AppVerifier de fonctionner
  • Problème résolu à l’origine de l’échec de WACK avec l’échec de la tâche pour activer HighVersionLie

Autres ressources