Windows SDK

Windows SDK (10.0.22000) för Windows 11 har de senaste huvudfilerna, biblioteken, metadata och verktygen för att utveckla Windows-appar. Använd detta SDK för att skapa UWP-appar (universell Windows-plattform) och Win32-program för Windows 11 och tidigare Windows-versioner.

Komma igång

Du kan skaffa Windows SDK på två sätt: installera det från den här sidan genom att välja nedladdningslänken eller genom att välja ”Windows 11 SDK (10.0.22000)” i de valfria komponenterna i installationsprogrammet för Visual Studio 2019.

Innan du installerar detta SDK:

  1. Läs igenom alla systemkrav
  2. Avsluta Visual Studio innan du startar installationen.
  3. Läs igenom viktig information och kända problem.

Systemkrav

Windows SDK har följande minimisystemkrav:

Operativsystem som stöds

  • Utveckling av UWP-appar (Universell Windows-plattform)
    • Windows 10 version 1507 eller senare: Home, Professional, Education och Enterprise (LTSB och S stöds inte)
    • Windows Server 2019, Windows Server 2016 och Windows Server 2012 R2 (endast kommandoraden)
  • Win32-apputveckling
    • Windows 10 version 1507 eller senare
    • Windows Server 2019, Windows Server 2016 och Windows Server 2012 R2 (endast kommandoraden)
    • Windows 8.1
    • Windows 7 SP1

(Alla verktyg stöds inte i tidigare operativsystem)

Maskinvarukrav

  • 1,6 GHz eller snabbare processor
  • 1 GB RAM-minne
  • 4 GB tillgängligt hårddiskutrymme

Ytterligare SDK-krav

För installation på Windows 8.1 och tidigare operativsystem krävs KB2999226. Om du vill installera via Windows Update ser du till att installera de senaste rekommenderade uppdateringarna och korrigeringarna från Microsoft Update innan du installerar Windows SDK.

Nyheter

Med Windows SDK för Windows 11 kan du uppdatera dina appar för den senaste versionen av Windows-operativsystemet. Läs mer om de nya funktionerna i Windows 11.

Information om de nya API:erna som introducerats i Windows 11 finns i Nya API:er i Windows 11 version 22000.

Återskapade binärfilerna för Windows 11 på själva ARM-operativsystemet med ARM64EC så att all systemkod som läses in av x64-appar körs med ursprunglig hastighet. Dra nytta av ARM64EC för att stegvis gå över till att din app körs med ursprunglig hastighet på ARM, även om du har beroenden eller plugin-program som inte stöder ARM än. Läs meddelandet.

Exempel

Exempel på Windows-appar är nu tillgängliga via GitHub. Du kan bläddra i koden på GitHub, klona en personlig kopia av lagringsplatsen från Git eller ladda ned ett zippat arkiv med alla exempel. Vi välkomnar feedback, så skicka gärna in feedback om lagringsplatsen om du har ett problem eller en fråga. Dessa exempel är avsedda att köras på skrivbordsenheter och på mobila och framtida enheter som stöder Universell Windows-plattform (UWP).

Tidigare SDK-versioner

Tidigare släppta SDK:er och emulatorer, inklusive uppdateringsinformation, finns på arkivsidan.

API Light Up

När du använder nya API:er bör du överväga att skriva en adaptiv app så att den kan köras korrekt på så många olika Windows-enheter som möjligt. En adaptiv app använder nya funktioner om enheterna och Windows-versionen stöder dem. I andra fall tillhandahålls endast de funktioner som är tillgängliga på den plattformsversion som identifieras. Implementeringsinformation finns i artikeln Versionsadaptiv kod.

Viktig information och kända problem

Windows 10 SDK, version 2104

  • Tog bort api-ms-win-net-isolation-l1-1-0.lib. Appar som länkade mot api-ms-win-net-isolation-l1-1-0.lib kan byta till OneCoreUAP.lib i stället.
  • Tog bort irprops.lib. Appar som länkade mot irprops.lib kan byta till bthprops.lib i stället.
  • ENUM tagServerSelection har flyttats från wuapicommon.h till wupai.h och huvudfilen har tagits bort. Om du vill använda ENUM tagServerSelection måste du ta med wuapi.h eller wuapi.idl.
  • Windows 10 WinRT API-komponentgruppen gör att du kan lägga till stöd för de senaste Windows Runtime API:erna till dina .NET Framework 4.5+ och .NET Core 3.0+ bibliotek och appar. Om du vill ha tillgång till Windows 10 WinRT API-komponentgruppen, se Microsoft.Windows.SDK.Contracts nuget-komponentgruppen.
  • Serien med printf-funktioner överensstämmer nu med IEEE 754-reglerna för avrundning vid utskrift som exakt representerar flyttal och uppfyller det avrundningsläge som begärs via anrop till fesetround. Äldre beteende är tillgängligt vid länkning med legacy_stdio_float_rounding.obj.
  • Certifieringspaket för Windows-program. Flera nya API:er har lagts till i listan över API:er som stöds i certifieringspaketet för Windows-program och Windows Store. Om det finns API:er i listan med API:er som stöds som är nedtonade eller inaktiverade i Visual Studio kan du göra en liten ändring i källfilen för att komma åt dem. Mer information finns i avsnittet med kända problem. Hitta fler uppdateringar av tester.
  • Uppdateringar för Message Compiler (mc.exe):
    • Nu identifieras Unicode-BOM (Byte Order Mark) i MC-filer. Om MC-filen börjar med en UTF-8-BOM kommer den att läsas som en UTF-8-fil. Annars, om den börjar med en UTF-16LE-BOM, kommer den att läsas som en UTF-16LE-fil. Om parametern -u angavs kommer den att läsas som en UTF-16LE-fil. Annars kommer den att läsas med den aktuella teckentabellen (CP_ACP).
    • Nu förhindras ODR-problem (One-Definition-Rule) i MC-genererade C/C++-baserade ETW-hjälpkomponenter orsakade av konflikter mellan konfigurationsmakron. Om exempelvis två CPP-filer med inkompatibla definitioner av MCGEN_EVENTWRITETRANSFER länkas i samma binärfil, kommer de MC-genererade ETW-hjälpkomponenterna nu att respektera definitionen av MCGEN_EVENTWRITETRANSFER i varje CPP-fil i stället för att slumpmässigt välja den ena eller den andra.
  • Uppdateringar för Windows Trace Preprocessor (tracewpp.exe):
    • Stöder Unicode-indatafiler (.ini, .tpl och källkod). Indatafiler som börjar med en UTF-8- eller UTF-16-BOM (Byte Order Mark) kommer att läsas som Unicode. Indatafiler som inte börjar med en BOM kommer att läsas med den aktuella teckentabellen (CP_ACP). För att ge stöd för bakåtkompatibilitet kommer filer som börjar med en UTF-16-BOM att behandlas som tomma om kommandoradsparametern -UnicodeIgnore har angetts.
    • Stöder Unicode-utdatafiler (.tmh). Som standard kommer utdatafiler att kodas med den aktuella teckentabellen (CP_ACP). Använd kommandoradsparametern -cp:UTF-8 eller -cp:UTF-16 för att generera Unicode-utdatafiler.
    • Funktionsändring: nu konverterar tracewpp all indatatext till Unicode, utför bearbetning i Unicode och konverterar utdatatext till angiven utdatakodning. Tidigare versioner av tracewpp undvek Unicode-konverteringar och utförde textbearbetning baserat på en teckenuppsättning med enkla byte (single-byte character set). Detta kan leda till funktionsändringar om indatafilerna inte överensstämmer med den aktuella teckentabellen. Om detta är ett problem bör du överväga att konvertera indatafilerna till UTF-8 (med BOM) och/eller använda kommandoradsparametern -cp:UTF-8 för att förhindra tvetydigheter angående kodningen.
  • Uppdateringar för TraceLoggingProvider.h:
    • Förhindrar ODR-problem (One-Definition-Rule) som orsakas av konflikter mellan konfigurationsmakron. Om exempelvis två CPP-filer med inkompatibla definitioner av TLG_EVENT_WRITE_TRANSFER länkas i samma binärfil kommer TraceLoggingProvider.h-hjälpkomponenterna nu att respektera definitionen av TLG_EVENT_WRITE_TRANSFER i varje CPP-fil i stället för att slumpmässigt välja den ena eller den andra.
    • I C++-kod har TraceLoggingWrite-makron uppdaterats för bättre koddelning mellan liknande händelser med hjälp av variadic-mallar.
  • Signera dina appar. Device Guard-signering är en funktion i Device Guard som är tillgänglig i Microsoft Store för företag och utbildning. Med den här funktionen kan företag garantera att alla appar kommer från en betrodd källa. Läs dokumentationen om Device Guard-signering.
  • SDK-header-filer har uppdaterats för att åtgärda fel vid kompilering med C-förprocessorn (som följer standard) i MSVC-kompilatorn cl.exe (/Zc:preprocessor, som introducerades i VS 2019 v16.6).
  • Åtgärdat: ”GdiplusTypes.h kompileras inte med NOMINMAX”. Se Visual Studio-feedback.
  • När du kompilerar med /std:c11 eller /std:c17 får du nu:
    • C99 tgmath.h
    • C11 static_assert in assert.h
    • C11 stdalign.h
    • C11 stdnoreturn.h
  • Clang/LLVM for Windows v11 med inriktning på ARM64 är inte kompatibel med senaste winnt.h
    • En lösning är att använda den tidigare versionen av Windows 10 SDK (version 19041) eller clang/LLVM for Windows v10 för ARM64-plattformar
  • DirectXMath (inklusive version 3.16 i den här versionen) är inte kompatibel med Clang/LLVM for Windows på ARM64.
  • I vissa fall ändrades header-filer för att normalisera dem för skiftlägeskänsliga filsystem:
    • OAIdl.h, ObjIdl.h, ObjIdlbase.h, OCIdl.h, Ole2.h, OleAuto.h, and OleCtl.h ändrades till gemener.
    • För att stödja både den gamla versionen och den senaste versionen av Windows 10 SDK när det gäller Clang/LLVM for Windows-versioner kan du lägga till -Wno-nonportable-system-include-path i CLI, eller följande #pragma i källfilen:

      #ifdef __clang__
      #pragma clang diagnostic ignored "-Wnonportable-system-include-path"
      #endif

Uppdatering för Windows 10 SDK, version 2004 (släpptes 16 december 2020)

    Den här versionen innehåller följande filer. Om du stöter på de här problemen rekommenderar vi att du uppdaterar din SDK-version så snart som möjligt för att undvika dem:
  • Löste oförutsägbara och svårdiagnostiserade krascher vid länkning av både paraplybibliotek och ursprungliga OS-bibliotek (till onecoreuap.lib och kernel32.lib)
  • Löste problem som förhindrade att AppVerifier fungerar
  • Löste problem som orsakade att WACK misslyckades med "Det gick inte att aktivera HighVersionLie"

Ge feedback

Information om kända problem finns i vanliga frågor och svar om winapi-sdk.

Om du har önskemål om utvecklarfunktioner är du välkommen att skicka dem via Feedbackhubben i kategorin ”Utvecklingsplattform/API”.

Fler resurser

Nedladdningar och verktyg

Skaffa de senaste versionerna av utvecklingsverktygen för Visual Studio och Windows 10.

LÄS MER

SDK-arkiv

Hitta tidigare versioner av Windows SDK och andra verktyg.

SE ARKIVET

Windows-blogg

Håll dig uppdaterad om de senaste SDK-förhandsversionerna genom att prenumerera på vår blogg.

FÅ NYHETER OM SDK-FÖRHANDSVERSIONER

Informationsblad om Windows-produkters livscykel

Se viktiga datum när Windows-uppdateringar släpps och supporten upphör.

LÄS INFORMATIONSBLADET