Windows SDK

A Windows 11-hez készült Windows SDK (10.0.22000) biztosítja a Windows-alkalmazások fejlesztéséhez használható legújabb fejléceket, függvénytárakat, metaadatokat és eszközöket. Az SDK-val univerzális Windows-alkalmazásokat (UWP) és Win32-alkalmazásokat fejleszthet a Windows 11-hez és a Windows korábbi kiadásaihoz.

Első lépések

A Windows SDK-t kétféleképpen szerezheti be: telepítheti erről az oldalról a letöltés hivatkozásra kattintva, vagy pedig a „Windows 11 SDK (10.0.22000)” lehetőség kiválasztásával a Visual Studio 2019 telepítőjének választható összetevői között.

Az SDK telepítése előtt:

  1. Az összes rendszerkövetelmény áttekintése
  2. A telepítés előtt lépjen ki a Visual Studióból.
  3. A kibocsátási megjegyzések és az ismert problémák áttekintése.

Rendszerkövetelmények

A Windows SDK minimális rendszerkövetelményei a következők:

Támogatott operációs rendszerek

  • Univerzális Windows-platformra készült (UWP-) alkalmazások fejlesztése
    • A Windows 10 1507-es vagy újabb verziója: Home, Professional, Education és Enterprise (az LTSB és az S kiadás nem támogatott)
    • Windows Server 2019, Windows Server 2016 és Windows Server 2012 R2 (csak parancssor)
  • Win32-alkalmazások fejlesztése
    • A Windows 10 1507-es vagy újabb verziója
    • Windows Server 2019, Windows Server 2016 és Windows Server 2012 R2 (csak parancssor)
    • Windows 8.1
    • Windows 7 SP1

(A korábbi operációs rendszereken nem minden eszköz támogatott.)

Hardverkövetelmények

  • 1,6 GHz-es vagy gyorsabb processzor
  • 1 GB RAM
  • 4 GB szabad merevlemez-terület

Az SDK-ra vonatkozó további követelmények

A Windows 8.1 vagy annál korábbi operációs rendszerre való telepítéshez szükséges a KB2999226 jelű frissítés. Ha a Windows Update-ről szeretné telepíteni, a Windows SDK telepítése előtt telepítse a Microsoft Update-ről a legújabb javasolt frissítéseket és javításokat.

Újdonságok

A Windows 11-hez készült Windows SDK-val frissítheti az alkalmazásokat a Windows operációs rendszer legújabb verziójára. További információ a Windows 11 újdonságairól.

A Windows 11-ben bevezetett új API-k megtekintéséhez lásd: Új API-k a Windows 11 22000-es buildjében.

Az ARM64EC-vel újraépítheti a Windows 11 bináris fájljait magán az ARM operációs rendszeren, így az x64-es alkalmazások által betöltött rendszerkódok natív sebességgel futnak. Az ARM64EC-t fokozatosan használva úgy alakíthatja át az alkalmazást, hogy natív sebességgel fusson ARM-en, még akkor is, ha olyan függőségei vagy beépülő moduljai vannak, amelyek még nem támogatják az ARM-et. Olvassa el a bejelentést.

Minták

A GitHubról már letölthetők a Windows-alkalmazásminták. Böngészheti a kódot a GitHubon, klónozással személyes másolatot készíthet az adattárból a Git segítségével, vagy egy tömörített archívum formájában letölthet minden mintát. Örülünk a visszajelzésnek, ezért jegyezzen be egy problémát az adattárban, ha problémája vagy kérdése merül fel. Ezek a minták futtathatók asztali gépen, mobileszközökön és olyan jövőbeli eszközökön, amelyek támogatják az Univerzális Windows-platformot (UWP).

Korábbi SDK-verziók

A korábban kiadott SDK-k és emulátorok – a frissítések részleteit is ideértve – az archívumban találhatók meg.

API a fókuszban

Ha új API-kat szeretne használni, adaptív módon írja meg az alkalmazást, hogy az a legtöbb Windows-eszközön megfelelően fusson. Az adaptív alkalmazások új szolgáltatások „villannak fel”, amennyiben támogatja őket a használt eszköz és Windows-verzió, egyéb esetben pedig csak a platform verziójának megfelelő funkcionalitást kínálják. Az implementációról a verzióadaptív kódról szóló cikkben talál további információt.

Kibocsátási megjegyzések és ismert problémák

A Windows 10 SDK 2104-es verziója

  • Az api-ms-win-net-isolation-l1-1-0.lib el lett távolítva. Az api-ms-win-net-isolation-l1-1-0.lib használatával hivatkozó alkalmazások áttérhetnek a OneCoreUAP.lib használatára.
  • Az irprops.lib el lett távolítva. Az irprops.lib használatával hivatkozó alkalmazások áttérhetnek a bthprops.lib használatára ideiglenes megoldásként.
  • Az ENUM tagServerSelection át lett helyezve a wuapicommon.h-ból a wupai.h-ba, és eltávolítottuk a fejlécet. Ha használni szeretné az ENUM tagServerSelection-t, akkor bele kell foglalnia a wuapi.h-t vagy a wuapi.idl-t.
  • A Windows 10 WinRT API csomaggal támogatást adhat hozzá a legfrissebb Windows Runtime API-khoz a .NET Framework 4.5+ és a .NET Core 3.0+ kódtárakhoz és alkalmazásokhoz. A Windows 10 WinRT API csomag eléréséhez lásd a Microsoft.Windows.SDK.Contracts nuget-csomagot.
  • A printf függvénycsalád mostantól megfelel az IEEE 754 kerekítési szabályainak a pontosan megjeleníthető lebegőpontos számok nyomtatásánál, és megfelel majd a fesetround-hoz érkező hívásokban kért kerekítési módnak. Az örökölt viselkedés a legacy_stdio_float_rounding.obj csatolásakor érhető el.
  • Windows alkalmazásminősítő készlet. Több új API-val bővült a támogatott API-k listája az Alkalmazástanúsítványi készletben és a Windows Store-ban. Ha vannak olyan API-k a támogatott listában, amelyek szürkén jelennek meg vagy le vannak tiltva a Visual Studióban, akkor a forrásfájl egy kis módosításával férhet hozzá ezekhez. További részletekért tekintse meg ezt az ismert problémát. A tesztek további frissítései.
  • A Message Compiler (mc.exe) frissítései:
    • A mostantól észleli a Unicode bájtsorrendjelzőt (BOM) az .mc-fájlokban. Ha az .mc-fájl UTF-8 BOM-mal kezdődik, akkor UTF-8-as fájlként lesz beolvasva. Ha UTF-16LE BOM-mal kezdődik, akkor UTF-16LE-fájlként lesz beolvasva. Ha meg van adva az -u paraméter, akkor UTF-16LE-fájlként lesz beolvasva. Más esetben az aktuális kódlap (CP_ACP) használatával lesz beolvasva.
    • Most már kiküszöböli az egyetlen definíciós szabállyal (ODR) kapcsolatos problémákat az MC által generált C/C++ ETW segítőkben, melyeket az ütköző makrók okoznak (ha például két, ütköző MCGEN_EVENTWRITETRANSFER-definíciót tartalmazó .cpp-fájl ugyanahhoz a binárishoz van csatolva, akkor az MC által generált ETW-segítők mostantól az egyes .cpp-fájlokban található MCGEN_EVENTWRITETRANSFER-definíciót fogják figyelembe venni ahelyett, hogy önkényesen kiválasztanák valamelyiket).
  • A Windows Trace Preprocessor (tracewpp.exe) frissítései:
    • A Unicode kódolású bemeneti (.ini, .tpl és forráskód-) fájlok támogatása. Az UTF-8 vagy UTF-16 bájtsorrendjelzővel (BOM) kezdődő bemeneti fájlok Unicode-ként lesznek beolvasva. A nem BOM-mel kezdődő bemeneti fájlok az aktuális kódlap (CP_ACP) használatával lesznek beolvasva. Ha meg van adva a -UnicodeIgnore parancssori paraméter, akkor a visszamenőleges kompatibilitás érdekében az UTF-16-os BOM-mel kezdődő fájlok üresként lesznek kezelve.
    • A Unicode kódolású kimeneti (.tmh) fájlok támogatása. Alapértelmezés szerint a kimeneti fájlok az aktuális kódlap (CP_ACP) használatával lesznek kódolva. A -cp:UTF-8 vagy a -cp:UTF-16 parancssori paraméterek használhatóak a Unicode-kódolású kimeneti fájlok létrehozásához.
    • Viselkedés változása: a tracewpp mostantól Unicode-ra konvertálja az összes bemeneti szöveget, a kimeneti szöveget pedig a megadott kimeneti kódolásra konvertálja. A tracewpp korábbi verziói kerülték a Unicode-ra való konvertálást, és a szöveges feldolgozást egybájtos karakterkészletet feltételezve hajtották végre. Ez a viselkedés változásához vezethet olyan esetekben, amikor a bemeneti fájl nem felel meg az aktuális kódlapnak. Ha emiatt probléma merül fel, érdemes lehet a bemeneti fájlokat UTF-8-ra konvertálni (BOM használatával) és/vagy a -cp:UTF-8 parancssori paramétert alkalmazni az egyértelműség érdekében.
  • A TraceLoggingProvider.h frissítései:
    • Kiküszöböli az egyetlen definíciós szabállyal (ODR) kapcsolatos problémákat, melyeket az ütköző makrók okoznak (például ha két, ütköző TLG_EVENT_WRITE_TRANSFER-definíciót tartalmazó .cpp-fájl ugyanahhoz a bináris fájlhoz van csatolva, akkor a traceLoggingProvider.h segítők mostantól az egyes .cpp-fájlokban található TLG_EVENT_WRITE_TRANSFER-definíciót fogják figyelembe venni ahelyett, hogy önkényesen kiválasztanák valamelyiket).
    • A C++-kódban a TraceLoggingWrite makró frissítve lett, hogy jobban biztosítható legyen a kódok megosztása a hasonló események között a variadikus sablonok használatával.
  • Alkalmazások aláírása. A Device Guard-aláírás a Device Guard egy olyan funkciója, amely a Microsoft Store Vállalatoknak és a Microsoft Store Oktatási Intézményeknek áruházban érhető el, és amellyel a vállalatok garantálhatják, hogy minden alkalmazás megbízható forrásból származik. Olvassa el a Device Guard-aláírás dokumentációját.
  • Frissítettük az SDK-fejléceket azoknak a problémáknak a kijavítása érdekében, melyek akkor jelentkeztek, ha a fordítást a szabványos C előfeldolgozó használatával végezték a cl.exe MSVC fordítóval (/Zc:preprocessor, bevezetve a VS 2019 v16.6 verziójában).
  • Javítva: „A GdiplusTypes.h nem fordít a NOMINMAX használatával.” Lásd a Visual Studio-visszajelzést.
  • Az /std:c11 vagy az /std:c17 használatával való buildelésnél most ez az eredmény:
    • C99 tgmath.h
    • C11 static_assert in assert.h
    • C11 stdalign.h
    • C11 stdnoreturn.h
  • A Clang/LLVM Windows v11-hez ARM64-re nem kompatibilis a legújabb winnt.h-val
    • Áthidaló megoldásként használja a Windows 10 SDK előző verzióját (19041-es build), vagy a Windows v10-hez készült clang/LLVM-et az ARM64-platformok megcélzásakor
  • A DirectXMath (beleértve a jelen kiadás 3.16-os verzióját is) nem kompatibilis a Clang/LLVM-mel Windowshoz ARM64-en.
  • Egyes fejlécfájloknál módosult a kis-/nagybetűk használata a kis- és nagybetűket megkülönböztető rendszerekhez való normalizálás érdekében:
    • Az OAIdl.h, az ObjIdl.h, az ObjIdlbase.h, az OCIdl.h, az Ole2.h, az OleAuto.h és az OleCtl.h mind kisbetűsek lettek.
    • A Windows-buildekhez készült Clang/LLVM esetében annak érdekében, hogy a Windows 10 SDK régebbi és újabb verziójánál se jelenjenek meg figyelmeztetések, adja hozzá a `-Wno-nonportable-system-include-path` paramétert a CLI-hez, vagy a forrásban az alábbi #pragma részt:

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

Windows 10 SDK, 2004-es karbantartási frissítés (kiadva: 2020.12.16.)

    Ez a kiadás a következő fájlokat tartalmazza. Ha ezeket a problémákat tapasztalja, javasoljuk, hogy a lehető leghamarabb frissítse az SDK verzióját, hogy elkerülje őket:
  • Megoldás az előre nem látható és nehezen diagnosztizálható összeomlásokra az ernyőkódtárak és a natív operációsrendszer-kódtárak (például a onecoreuap.lib és a kernel32.lib) összekapcsolásánál
  • Megoldás arra a problémára, amely megakadályozta az AppVerifier működését
  • Megoldás arra a problémára, amely miatt a WACK sikertelen volt a „Task failed to enable HighVersionLie” üzenettel

Visszajelzés küldése

Az ismert problémákat a winapi-sdk Q&A-ben találja.

Az új fejlesztői funkciókra vonatkozó kéréseket a Visszajelzési központ alkalmazással küldheti el a „Fejlesztői platform/API” kategóriában.

További források

Letöltések és eszközök

A Visual Studio és a Windows 10 fejlesztői eszközeinek legújabb kiadásai.

TOVÁBBI INFORMÁCIÓ

SDK-archívum

Találja meg a Windows SDK és az egyéb eszközök korábbi kiadásait.

ARCHÍVUM MEGTEKINTÉSE

Windows-blog

Regisztráljon a blogra, hogy mindig értesülhessen a legújabb SDK-tesztcsomagokról.

SDK-TESZTCSOMAGOKKAL KAPCSOLATOS HÍREK

Windows-életciklus adatlapja

Itt megtalálhatja a Windows-kiadásokkal kapcsolatos legfontosabb dátumokat és a támogatás megszűnési idejét.

ADATLAP MEGTEKINTÉSE