Windows SDK

Das Windows SDK (10.0.22621) für Windows 11, Version 22H2 bietet die neuesten Header, Bibliotheken, Metadaten und Tools zum Erstellen von Windows-Anwendungen. Verwenden Sie dieses SDK, um Universelle Windows-Plattform (UWP) und Win32-Anwendungen für Windows 11, Version 22H2 und frühere Windows-Versionen zu erstellen.

Tipp

Windows-App-SDK
Die Windows App SDK bietet eine einheitliche Gruppe von APIs und Tools, die vom Betriebssystem entkoppelt und für Entwickler über NuGet-Pakete freigegeben werden. Diese APIs und Tools können auf konsistente Weise von einer beliebigen Desktop-App auf Windows 11 und nach unten auf Windows 10, Version 1809 verwendet werden.

Erste Schritte

Sie können das Windows SDK auf zwei Arten abrufen: Installieren Sie es auf dieser Seite, indem Sie den Downloadlink auswählen oder "Windows 11 SDK (10.0.22621.0)" in den optionalen Komponenten des Visual Studio 2022-Installers auswählen. Vor der SDK-Installation:

Letzte Aktualisierung: 4. Oktober 2021

Systemanforderungen

Für das Windows SDK gelten folgende Mindestvoraussetzungen:

Unterstützte Betriebssysteme

  • Windows 10 Version 1507 oder höher: Home, Professional, Education und Enterprise (LTSB und S werden für UWP nicht unterstützt)
  • Windows Server 2022, Windows Server 2019, Windows Server 2016 und Windows Server 2012 R2 (nur Befehlszeile)
  • Windows 8.1
  • Windows 7 SP1

(Unter früheren Betriebssystemen werden nicht alle Tools unterstützt.)

Hardwareanforderungen

  • 1,6-GHz-Prozessor oder schneller
  • 1 GB RAM
  • 4 GB verfügbarer Festplattenspeicher

Weitere SDK-Anforderungen

Die Installation auf Windows 8.1 und früheren Betriebssystemen erfordert ein Update für universelle C-Runtime in Windows. Für die Installation über Windows Update sollten die neuesten empfohlenen Updates und Patches von Microsoft Update installiert sein, bevor Sie das Windows SDK installieren.

Beispiele

Windows-App-Beispiele sind jetzt über GitHub verfügbar. Sie können den Code auf GitHub durchsuchen, eine persönliche Kopie des Repositorys aus Git klonen oder ein zipped-Archiv aller Beispiele herunterladen . Wir freuen uns immer über Feedback. Erstellen Sie im Repository also gern eine Anfrage, wenn Sie ein Problem oder eine Frage haben. Diese Beispiele sind für die Ausführung auf Desktopgeräten, mobilen Geräten und zukünftigen Geräten ausgelegt, welche die Universelle Windows-Plattform (UWP) unterstützen.

Vorherige SDK-Versionen

Die zuvor veröffentlichten SDKs und Emulatoren sowie die Updatedetails finden Sie auf der Archivseite.

Neue APIs

Wenn Sie neue APIs verwenden, sollten Sie Ihre App so schreiben, dass sie ordnungsgemäß auf den breiten Arrays von Windows-Geräten ausgeführt wird. Eine adaptive App "leuchtet" mit neuen Features auf, wenn die Geräte und Windows-Version sie unterstützen, aber andernfalls bietet nur die auf der erkannten Plattformversion verfügbaren Funktionen. Details zur Implementierung finden Sie im Artikel zum adaptiven Version-Code.

Versionshinweise und bekannte Probleme

Windows SDK für Windows 11, Version 22H2
  • Wartungsupdate 10.0.22621.755. Enthält ARM64-Unterstützung für die VS 17.4-Version
Windows 10 SDK, Version 2104
  • Entfernte api-ms-win-net-isolation-l1-1-0.lib. Apps, die mit api-ms-win-net-isolation-l1-1-0.lib verknüpft wurden, können nicht OneCoreUAP.lib als Ersatz wechseln.

  • Entfernt irprops.lib. Apps, die mit irprops.lib verknüpft wurden, können als Drop-In-Ersatz auf bthprops.lib wechseln.

  • Verschoben ENUM tagServerSelection aus wuapicommon.h in wupai.h und entfernte den Header. Wenn Sie das ENUM tagServerSelection verwenden möchten, müssen Sie wuapi.h oder wuapi.idl einschließen.

  • Mit dem Windows 10 WinRT API Pack können Sie ihre .NET Framework 4.5+ und .NET Core 3.0+-Bibliotheken und -Apps den neuesten Windows-Runtime APIs hinzufügen. Informationen zum Zugriff auf das Windows 10 WinRT-API Pack finden Sie im Nuget-Paket von Microsoft.Windows.SDK.Contracts.

  • Die Printf-Familie von Funktionen entspricht nun den IEEE 754-Rundungsregeln , wenn Sie genau dargestellte Gleitkommanummern drucken und den durch Aufrufe an Fesetround angeforderten Rundungsmodus honorieren. Legacyverhalten ist beim Verknüpfen mit legacy_stdio_float_rounding.obj verfügbar.

  • Zertifizierungskit für Windows-Apps. Mehrere neue APIs wurden der Liste "Unterstützte APIs" im App-Zertifizierungskit und windows Store hinzugefügt. Wenn apIs in der unterstützten Liste vorhanden sind, die in Visual Studio abgeblendet oder deaktiviert sind, können Sie eine kleine Änderung an Ihrer Quelldatei vornehmen, um darauf zuzugreifen. Weitere Details finden Sie in diesem bekannten Problem. Weitere Updates für Tests finden Sie.

  • Nachrichtencompiler (mc.exe) Updates:

    • Erkennt jetzt das Unicode-Bytereihenfolgenzeichen (BOM) in MC-Dateien. Wenn die MC-Datei mit einer UTF-8 BOM beginnt, wird sie als UTF-8-Datei gelesen. Andernfalls wird es als UTF-16LE-BOM als UTF-16LE-Datei gelesen. Wenn der Parameter -u angegeben wurde, wird es als UTF-16LE-Datei gelesen. Andernfalls wird es mithilfe der aktuellen Codeseite (CP_ACP) gelesen.
    • Vermeiden Sie jetzt Probleme mit einer Definitionsregel (ODR) in MC-generierten C/C++ ETW-Hilfsern, die durch konfliktige Konfigurationsmakros verursacht werden (z. B. wenn zwei CPP-Dateien mit konfliktigen Definitionen von MCGEN_EVENTWRITETRANSFER mit derselben Binärdatei verknüpft sind, wird die MC-generierte ETW-Hilfser jetzt die Definition von MCGEN_EVENTWRITETRANSFER in jeder CPP-Datei berücksichtigen, anstatt eine oder andere zu wählen).
  • Windows Trace Preprocessor (tracewpp.exe) Updates:

    • Unterstützt Unicode-Eingabedateien (.ini, .tpl und Quellcode). Eingabedateien, die mit einem UTF-8- oder UTF-16-Bytereihenfolgenzeichen (BOM) beginnen, werden als Unicode gelesen. Eingabedateien, die nicht mit einem BOM beginnen, werden mithilfe der aktuellen Codeseite (CP_ACP) gelesen. Wenn der Befehlszeilenparameter -UnicodeIgnore angegeben wird, werden Dateien, die mit einer UTF-16-BOM beginnen, als leer behandelt.
    • Unterstützt Unicode-Ausgabedateien (.tmh) Standardmäßig werden Ausgabedateien mithilfe der aktuellen Codeseite (CP_ACP) codiert. Verwenden Sie Befehlszeilenparameter -cp:UTF-8 oder -cp:UTF-16, um Unicode-Ausgabedateien zu generieren.
    • Verhaltensänderung: Tracewpp konvertiert jetzt alle Eingabetext in Unicode, führt die Verarbeitung in Unicode durch und konvertiert Ausgabetext in die angegebene Ausgabecodierung. Frühere Versionen von Tracewpp vermeiden Unicode-Konvertierungen und ausgeführte Textverarbeitung, vorausgesetzt, ein einzelnes Byte-Zeichensatz. Dies kann zu Verhaltensänderungen in Fällen führen, in denen die Eingabedateien nicht der aktuellen Codeseite entsprechen. In Fällen, in denen dies ein Problem ist, sollten Sie die Eingabedateien in UTF-8 (mit BOM) konvertieren und/oder den -cp:UTF-8-Befehlszeilenparameter verwenden, um die Codierungsdeutität zu vermeiden.
  • TraceLoggingProvider.h updates:

    • Vermeiden Sie Probleme mit einer Definitionsregel (ODR), die durch konfliktige Konfigurationsmakros verursacht werden (z. B. wenn zwei CPP-Dateien mit Konfliktdefinitionen von TLG_EVENT_WRITE_TRANSFER mit derselben Binärdatei verknüpft sind, berücksichtigt die TraceLoggingProvider.h-Hilfser jetzt die Definition von TLG_EVENT_WRITE_TRANSFER in jeder CPP-Datei, anstatt eine oder andere zu auswählen).
    • Im C++-Code wurde das TraceLoggingWrite-Makro aktualisiert, um eine bessere Codefreigabe zwischen ähnlichen Ereignissen mit variadischen Vorlagen zu ermöglichen.
  • Signieren Ihrer Apps. Device Guard-Signatur ist ein Device Guard-Feature, das in Microsoft Store für Unternehmen und Education verfügbar ist, wodurch Unternehmen sicherstellen können, dass jede App aus einer vertrauenswürdigen Quelle stammt. Weitere Informationen zur Device Guard-Signatur finden Sie in der Dokumentation.

  • SDK-Header wurden aktualisiert, um Fehler beim Kompilieren mit dem standardkonformanten C-Präprozessor im MSVC-Compiler cl.exe (/Zc:preprocessor, eingeführt in VS 2019 v16.6) zu beheben.

  • Behoben: "GdiplusTypes.h kompiliert nicht mit NOMINMAX". Weitere Informationen finden Sie unter Visual Studio-Feedback.

  • Beim Erstellen mit /std:c11 oder /std:c17 erhalten Sie jetzt Folgendes:

    • C99 tgmath.h
    • C11 static_assert in assert.h
    • C11 stdalign.h
    • C11 stdnoreturn.h
  • Clang/LLVM für Windows v11 für ARM64 ist nicht kompatibel mit dem neuesten winnt.h

    • Verwenden Sie als Problemumgehung die vorherige Version des Windows 10 SDK (Build 19041) oder Clang/LLVM für Windows v10 beim Ziel von ARM64-Plattformen
  • DirectXMath (einschließlich Version 3.16 in dieser Version) ist nicht mit Clang/LLVM für Windows auf ARM64 kompatibel.

  • Der Fall einiger Headerdateien wurde geändert, um sie für Groß-/Kleinschreibungsdateisysteme zu normalisieren:

    • OAIdl.h, ObjIdl.h, ObjIdlbase.h, OCIdl.h, Ole2.h, OleAuto.h und OleCtl.h wurden alle Kleinschreibungen vorgenommen.
    • Um Clang/LLVM für Windows-Builds zu unterstützen, können Sie sowohl ältere Versionen als auch das neueste Windows 10 SDK ohne Warnungen unterstützen, die CLI oder die folgenden #pragma in Der Quelle hinzufügen-Wno-nonportable-system-include-path:

    #ifdef __clang__

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

    #endif

Windows 10 SDK, Version 2004-Wartungsupdate (veröffentlicht 12.16.2020)

Diese Version enthält die folgenden Dateien. Wenn Diese Probleme auftreten, empfehlen wir Ihnen, Ihre Version des SDK so schnell wie möglich zu aktualisieren, um sie zu vermeiden:

  • Löste unvorhersehbare und schwer zu diagnostizierende Absturze beim Verknüpfen von Dachbibliotheken und nativen Betriebssystembibliotheken (z. B. onecoreuap.lib und kernel32.lib)
  • Problem behoben, das verhindert hat, dass AppVerifier funktioniert
  • Problem behoben, das dazu führte, dass WACK mit "Task fehlgeschlagen, HighVersionLie zu aktivieren" fehlschlägt.

Weitere Ressourcen

  • Downloads und Tools

    Rufen Sie die neuesten Editionen von Visual Studio und Windows 10 Entwicklungstools ab.

  • SDK-Archiv

    Suchen Sie nach vorherigen Versionen des Windows SDK und anderen Tools.

  • Windows-Blog

    Bleiben Sie mit den neuesten SDK-Flügen in Kontakt, indem Sie unseren Blog abonnieren.