Windows SDK

適用於 Windows 11 的 Windows SDK (10.0.26100) 提供用於建置 Windows 應用程式的最新標頭、連結庫、元數據和工具。 使用此 SDK 建置適用於 Windows 11 版本 24H2 和舊版 Windows 的通用 Windows 平臺 (UWP) 和 Win32 應用程式。

提示

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

開始

您可以透過兩種方式取得 Windows SDK:從此頁面安裝它,方法是選取下載連結,或在 Visual Studio 2022 安裝程式的選用元件中選取 [Windows 11 SDK][10.0.26100.0]。 安裝此 SDK 之前:

上次更新日期:2024 年 9 月

系統需求

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

支援的作業系統

  • Windows 11 版本 21h2 或更高版本:家用版、專業版、教育版和企業版 (UWP 不支援 LTSC)
  • Windows 10 版本 1507 或更高版本:UWP 不支援家用版、專業版、教育版和企業版(LTSB/LTSC 和 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 進行安裝,請先確定在安裝 Windows SDK 之前,先從 Microsoft Update 安裝最新的建議更新和修補程式。

樣品

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

舊版 SDK

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

API 亮起

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

版本資訊和已知問題

Windows 11 組建 10.0.26100.1742(2024 年 9 月 24 日發行)

要與 Windows 11 版本 24h2 公開版本相對應的版本。

Windows 11 組建 10.0.26100 (2024 年 5 月 22 日發行)

10.0.26100 系列的初始版本,以對應 Windows 11 版本 24h2 預覽版。

Windows 11 組建 10.0.22621.3235(2024 年 2 月 29 日發行)

維護更新 10.0.22621.3235。

Windows 11 組建 10.0.22621.2428 (2023 年 10 月 24 日發行)

維護更新 10.0.22621.2428。

Windows 11 版本 22H2,組建 10.0.22621.1778

Update 10.0.22621.1778。 醒目提示的功能包括:

  • WindowTabManager API 可讓具有索引卷標介面的應用程式提供開啟索引標籤上給 Windows 殼層。
  • HumanPresence API 的更新,以改善易於使用,併為支持人類存在功能的感測器新增設定。
  • RemoteDesktop API 可讓應用程式在遠端和本機桌面之間切換。
Windows SDK for Windows 11 版本 22H2
  • 維護更新 10.0.22621.755。 包含 VS 17.4 版本的 ARM64 支援
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.Contracts nuget 套件

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

  • Windows 應用程式認證套件。 已將數個新的 API 新增至應用程式認證套件和 Windows 市集中支援的 API 清單。 如果 Visual Studio 中支援的清單中有 API 顯示為灰色或已停用,您可以對原始程式檔進行小變更,以存取它們。 如需詳細資訊,請參閱此 已知問題尋找測試的更多更新。

  • 訊息編譯程式 (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 協助程式所產生的單一定義規則(例如,當兩個.cpp檔案與MCGEN_EVENTWRITETRANSFER衝突的定義連結至相同的二進位檔時,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 輸出 (.tmh) 檔案。 根據預設,輸出檔案會使用目前的代碼頁編碼(CP_ACP)。 使用命令行參數 -cp:UTF-8 或 -cp:UTF-16 來產生 Unicode 輸出檔案。
    • 行為變更:tracewpp 現在會將所有輸入文字轉換成 Unicode、在 Unicode 中執行處理,並將輸出文字轉換成指定的輸出編碼。 舊版 tracewpp 會避免 Unicode 轉換,並執行文字處理,並假設單一位元組字元集。 在輸入檔案不符合目前代碼頁的情況下,這可能會導致行為變更。 如果發生此問題,請考慮將輸入檔轉換成 UTF-8(含 BOM)和 /或使用 -cp:UTF-8 命令行參數,以避免編碼模棱兩可。
  • TraceLoggingProvider.h 更新:

    • 避免發生組態巨集衝突所造成的單一定義規則 (ODR) 問題(例如,當兩個 .cpp具有TLG_EVENT_WRITE_TRANSFER衝突定義的檔案連結至相同的二進位檔時,TraceLoggingProvider.h 協助程式現在會遵守每個.cpp檔案中TLG_EVENT_WRITE_TRANSFER的定義,而不是任意挑選一個或另一個檔案。
    • 在C++程序代碼中,已更新 TraceLoggingWrite 巨集,以使用 variadic 範本在類似事件之間提供更好的程式碼共用。
  • 簽署您的應用程式。 Device Guard 簽署是一項 Device Guard 功能,可在商務與教育用 Microsoft Store 中使用,可讓企業保證每個應用程式都來自受信任的來源。 請參閱 device Guard 簽署的 檔。

  • SDK 標頭已更新,以解決在 MSVC 編譯程式中使用符合標準 C 預處理器進行編譯時的錯誤 cl.exe (/Zc:preprocessor,VS 2019 v16.6 中引進)。

  • 已修正:「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 不相容

    • 因應措施是,以ARM64平臺為目標時,使用舊版的Windows 10 SDK(組建19041),或適用於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 版本,以避免發生下列情況:

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

更多資源