Windows SDK

Windows SDK (10.0.22621) for Windows 11 版本 22H2 提供用於建置Windows應用程式的最新標頭、程式庫、中繼資料和工具。 使用此 SDK 建置 通用 Windows 平臺 (UWP) 和 Win32 應用程式,以Windows 11版本 22H2 和舊版Windows版本。

提示

Windows 應用程式 SDK
Windows 應用程式 SDK提供一組整合的 API 和工具,這些 API 和工具會與作業系統分離,並透過NuGet套件發行給開發人員。 這些 API 和工具可供Windows 11和下層上的任何傳統型應用程式一致地使用,以Windows 10 版本 1809。

開始使用

您可以透過兩種方式取得Windows SDK:選取下載連結,或選取 [Windows 11 SDK (10.0.22621.0) ] Visual Studio 2022 安裝程式的選用元件來安裝 SDK。 安裝此 SDK 之前:

上次更新日期:2021 年 10 月 4 日

系統需求

Windows SDK 具有下列最低系統需求:

支援的作業系統

  • Windows 10 1507 版或更高版本:UWP) 不支援家用版、Professional版、教育版和 Enterprise (LTSB 和 S
  • Windows Server 2022、Windows Server 2019、Windows Server 2016 和 Windows Server 2012 R2 (命令列)
  • Windows 8.1
  • Windows 7 SP1

(並非所有工具都支援舊版作業系統)

硬體需求

  • 1.6 GHz 或更快的處理器
  • 1 GB 的 RAM
  • 4 GB 可用硬碟空間

其他 SDK 需求

在 Windows 8.1 和舊版作業系統上安裝需要Windows 中的通用 C 執行時間更新。 若要透過 Windows Update 進行安裝,請先確定您先從 Microsoft Update 安裝最新的建議更新和修補程式,再安裝 Windows SDK。

範例

Windows應用程式範例現在可透過GitHub取得。 您可以在GitHub上流覽程式碼、從 Git 複製存放庫的個人複本,或下載所有範例的壓縮封存。 歡迎您提供意見反應,因此如果您有問題或問題,請放心地在存放庫內開啟問題。 這些範例的設計目的是在支援通用 Windows 平臺 (UWP) 的桌面、行動裝置和未來裝置上執行。

舊版 SDK

先前發行的 SDK 和模擬器,包括更新詳細資料,可以在 封存頁面上找到。

API 亮起

當您使用新的 API 時,請考慮將應用程式撰寫為調適型,使其可在最寬的Windows裝置上正確執行。 無論裝置和Windows版本支援新功能,調適型應用程式「亮起」,但只提供偵測到的平臺版本可用的功能。 如需實作詳細資料,請參閱 版本調適型程式碼一文

版本資訊與已知問題

Windows 10 SDK 版本 2104
  • 已移除 api-ms-win-net-isolation-l1-1-0.lib。 針對 api-ms-win-net-isolation-l1-1-0.lib 連結的應用程式可以切換 t OneCoreUAP.lib 作為取代專案。

  • 已移除 irprops.lib。 針對 irprops.lib 連結的應用程式可以切換至 bthprops.lib 作為卸載取代專案。

  • 已將 ENUM tagServerSelection 從 wuapicommon.h 移至 wupai.h,並移除標頭。 如果您想要使用 ENUM 標籤ServerSelection,您必須包含 wuapi.h 或 wuapi.idl。

  • Windows 10 WinRT API 套件可讓您將最新的Windows 執行階段 API 支援新增至您的 .NET Framework 4.5+ 和 .NET Core 3.0+ 程式庫和應用程式。 若要存取 Windows 10 WinRT API 套件,請參閱Microsoft.Windows。SDK。合約 nuget 套件

  • printf 系列函式現在 符合 IEEE 754 舍入規則 ,當列印完全可代表的浮點數時,會接受透過呼叫 fesetround所要求的進位模式。 使用 legacy_stdio_float_rounding.obj連結時,可以使用舊版行為。

  • Windows應用程式認證套件。 已將數個新的 API 新增至應用程式認證套件和Windows Microsoft Store中支援的 API 清單。 如果支援清單中的 API 在Visual Studio中呈現灰色或已停用,您可以對來源檔案進行小型變更,以存取它們。 如需詳細資訊,請參閱此 已知問題尋找更多測試更新

  • 訊息編譯器 (mc.exe) 更新:

    • 現在會偵測 .mc 檔案中的 Unicode 位元組順序標記 (BOM) 。 如果 .mc 檔案以 UTF-8 BOM 開頭,則會讀取為 UTF-8 檔案。 否則,如果以 UTF-16LE BOM 開頭,則會讀取為 UTF-16LE 檔案。 如果指定了 -u 參數,則會讀取為 UTF-16LE 檔案。 否則,將會使用目前的字碼頁 (CP_ACP) 來讀取。
    • 現在,避免 MC 產生的 C/C++ ETW 協助程式中發生一個定義規則 (ODR) 問題,例如 (衝突的設定宏所造成的問題。 當兩個具有衝突MCGEN_EVENTWRITETRANSFER定義的 .cpp 檔案連結到相同的二進位檔時,MC 產生的 ETW 協助程式現在會遵守每個 .cpp 檔案中MCGEN_EVENTWRITETRANSFER的定義,而不是任意挑選其中一個或其他) 。
  • Windows追蹤預處理器 (tracewpp.exe) 更新:

    • 支援 Unicode 輸入 (.ini、.tpl 和原始程式碼) 檔案。 從 UTF-8 或 UTF-16 位元組順序標記開始的輸入檔, (BOM) 將會讀取為 Unicode。 不會以 BOM 開頭的輸入檔案,將會使用目前的字碼頁 (CP_ACP) 來讀取。 為了回溯相容性,如果指定了 -UnicodeIgnore 命令列參數,則會將以 UTF-16 BOM 開頭的檔案視為空白。
    • 支援 Unicode 輸出 (.t) 檔案。 根據預設,輸出檔案會使用目前的字碼頁編碼 (CP_ACP) 。 使用命令列參數 -cp:UTF-8 或 -cp:UTF-16 來產生 Unicode 輸出檔案。
    • 行為變更:tracewpp 現在會將所有輸入文字轉換成 Unicode、在 Unicode 中執行處理,並將輸出文字轉換成指定的輸出編碼。 舊版 tracewpp 會避免 Unicode 轉換,並執行文字處理,並假設有單一位元組字元集。 如果輸入檔不符合目前的字碼頁,可能會導致行為變更。 如果發生此問題,請考慮使用 BOM) 和/或使用 -cp:UTF-8 命令列參數將輸入檔轉換成 UTF-8 (,以避免編碼模棱兩可。
  • TraceLoggingProvider.h 更新:

    • 避免一個定義規則 (ODR) 問題,因為 (發生設定宏衝突,例如,當兩個具有衝突定義TLG_EVENT_WRITE_TRANSFER的 .cpp 檔案連結到相同的二進位檔時,TraceLoggingProvider.h 協助程式現在會遵守每個 .cpp 檔案中TLG_EVENT_WRITE_TRANSFER的定義,而不是任意挑選其中一個或其他) 。
    • 在 C++ 程式碼中,TraceLoggingWrite 宏已更新,以使用 variadic 範本在類似事件之間啟用更好的程式碼共用。
  • 簽署您的應用程式。 Device Guard 簽署是一項 Device Guard 功能,可在商務用 Microsoft Store和教育版中使用,可讓企業保證每個應用程式都來自信任的來源。 請參閱 Device Guard 簽署的相關檔

  • SDK 標頭已更新為在 VS 2019 v16.6) 中,在編譯器cl.exe (/Zc:preprocessor MSVC編譯器時解決錯誤。

  • 已修正:「GdiplusTypes.h 未使用 NOMINMAX 編譯」。 請參閱Visual Studio意見反應

  • 使用 /std:c11 或 /std:c17 建置時,您現在會取得:

    • C99 tgmath.h
    • assert.h 中的 C11 static_assert
    • C11 stdalign.h
    • C11 stdnoreturn.h
  • 以 ARM64 為目標之 Windows v11 的 Clang/LLVM 與最新的 winnt.h 不相容

    • 因應措施是使用舊版的 Windows 10 SDK (組建 19041) ,或以 ARM64 平臺為目標時適用于 Windows v10 的 clang/LLVM
  • DirectXMath (在此版本中包含 3.16 版,) 與 ARM64 上的 Windows Clang/LLVM 不相容。

  • 某些標頭檔的大小寫已變更,以將其正規化,以用於區分大小寫的檔案系統:

    • OAIdl.h、ObjIdl.h、ObjIdlbase.h、OCIdl.h、Ole2.h、OleAuto.h 和 OleCtl.h 全都是小寫。
    • 針對適用于Windows組建的 Clang/LLVM,若要同時支援較舊版本和最新的 Windows 10 SDK,而不顯示警告、新增 -Wno-nonportable-system-include-path 至 CLI,或來源中的下列#pragma:

    #ifdef __clang__

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

    #endif

Windows 10 SDK 版本 2004 服務更新 (2020 年 12 月 16 日發行)

此版本包含下列檔案。 如果您遇到這些問題,建議您儘快更新您的 SDK 版本,以避免它們:

  • 解決無法預測且難以診斷當機的問題,例如,一個coreuap.lib 和 kernel32.lib 程式庫和原生 OS 連結 (庫)
  • 已解決導致 AppVerifier 無法運作的問題
  • 已解決導致 WACK 失敗的問題,並出現「工作無法啟用 HighVersionLie」

其他資源