Windows SDK

Windows SDK (10.0.26100) for Windows 11 には、Windows アプリケーションをビルドするための最新のヘッダー、ライブラリ、メタデータ、およびツールが用意されています。 この SDK を使用して、Windows 11 バージョン 24H2 および以前の Windows リリース用のユニバーサル Windows プラットフォーム (UWP) および Win32 アプリケーションをビルドします。

先端

Windows App SDK の
Windows App SDK には、OS から切り離され、NuGet パッケージを介して開発者にリリースされる、統合された API とツールのセットが用意されています。 これらの API とツールは、Windows 11 上の任意のデスクトップ アプリと、Windows 10 バージョン 1809 にダウンレベルで一貫した方法で使用できます。

はじめ

Windows SDK は 2 つの方法で入手できます。このページからインストールするには、ダウンロード リンクを選択するか、Visual Studio 2022 インストーラーのオプション コンポーネントで [Windows 11 SDK (10.0.26100.0)]を選択します。 この SDK をインストールする前に、次の操作を行います。

インストーラー > をダウンロードする

.iso >をダウンロードする

最終更新日: 2024 年 9 月

システム要件

Windows SDK には、次の最小システム要件があります。

サポートされているオペレーティング システム

  • Windows 11 バージョン 21h2 以降: Home、Pro、Education、Enterprise (LTSC は UWP ではサポートされていません)
  • Windows 10 バージョン 1507 以降: Home、Pro、Education、Enterprise (LTSB/LTSC および S モードは UWP ではサポートされていません)
  • 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 からリポジトリの個人用コピーを複製したり、すべてのサンプルの zip 形式のアーカイブ ダウンロード したりすることができます。 フィードバックをお待ちしております。問題や質問がある場合は、リポジトリ内で問題を開いてください。 これらのサンプルは、ユニバーサル Windows プラットフォーム (UWP) をサポートするデスクトップ、モバイル、および将来のデバイスで実行するように設計されています。

以前の SDK バージョン

以前にリリースされた SDK とエミュレーター (更新プログラムの詳細を含む) は、アーカイブ ページにあります。

API Light Up

新しい API を使用する場合は、最も広い範囲の Windows デバイスで正しく実行されるように、アプリをアダプティブに記述することを検討してください。 アダプティブ アプリは、デバイスと Windows バージョンでサポートされている新機能を使用して "点灯" しますが、それ以外の場合は、検出されたプラットフォーム バージョンで使用可能な機能のみを提供します。 実装の詳細については、バージョンアダプティブ コードに関する記事を参照してください。

リリース ノートと既知の問題

Windows 11 ビルド 10.0.26100.1742 (2024 年 9 月 24 日リリース)

Windows 11 バージョン 24h2 のパブリック リリースに対応するリリース。

Windows 11 ビルド 10.0.26100 (2024 年 5 月 22 日リリース)

Windows 11 バージョン 24h2 プレビューに対応する 10.0.26100 シリーズの初期リリース。

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 に対してリンクしていたアプリは、代わりに OneCoreUAP.lib を切り替えることができます。

  • irprops.lib を削除しました。 irprops.lib に対してリンクしていたアプリは、ドロップイン置換として bthprops.lib に切り替えることができます。

  • ENUM tagServerSelection を wuapicommon.h から wupai.h に移動し、ヘッダーを削除しました。 ENUM tagServerSelection を使用する場合は、wuapi.h または wuapi.idl を含める必要があります。

  • Windows 10 WinRT API Pack を使用すると、.NET Framework 4.5 以降および .NET Core 3.0 以降のライブラリとアプリに最新の Windows ランタイム API サポートを追加できます。 Windows 10 WinRT API Pack にアクセスするには、Microsoft.Windows.SDK.Contracts nuget パッケージを参照してください。

  • 関数の printf ファミリは、正確に表現可能な浮動小数点数を出力するときに IEEE 754 の丸め規則に準拠しており、fesetroundの呼び出しによって要求された丸めモード 受け入れられます。 従来の動作は、legacy_stdio_float_rounding.objとリンクするときに使用できます。

  • Windows アプリ認定キット。 アプリ認定キットと Windows ストアのサポートされている API の一覧にいくつかの新しい 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 ヘルパーでの 1 つの定義規則 (ODR) の問題を回避できるようになりました (たとえば、競合する定義がMCGEN_EVENTWRITETRANSFERの 2 つの.cpp ファイルが同じバイナリにリンクされている場合、MC によって生成された ETW ヘルパーは、各.cpp ファイル内のMCGEN_EVENTWRITETRANSFERの定義を優先し、1 つまたは複数を任意に選択する代わりに)。
  • 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 変換を回避し、1 バイト文字セットを想定してテキスト処理を実行しました。 これにより、入力ファイルが現在のコード ページに準拠していない場合に動作が変更される可能性があります。 これが問題である場合は、エンコードのあいまいさを回避するために、入力ファイルを UTF-8 (BOM を使用) に変換するか、-cp:UTF-8 コマンドライン パラメーターを使用することを検討してください。
  • TraceLoggingProvider.h の更新:

    • 構成マクロの競合によって発生する 1 定義規則 (ODR) の問題を回避します (たとえば、TLG_EVENT_WRITE_TRANSFERの定義が競合する 2 つの.cpp ファイルが同じバイナリにリンクされている場合、TraceLoggingProvider.h ヘルパーは、1 つを任意に選択するのではなく、各.cpp ファイル内のTLG_EVENT_WRITE_TRANSFERの定義を尊重するようになりました)。
    • C++ コードでは、TraceLoggingWrite マクロが更新され、可変個のテンプレートを使用した類似イベント間のコード共有が向上しました。
  • アプリに署名します。 Device Guard 署名は、ビジネスおよび教育機関向け Microsoft Store で利用できる Device Guard 機能です。これにより、企業はすべてのアプリが信頼できるソースから取得されることを保証できます。 Device Guard 署名に関する ドキュメントを参照してください。

  • MSVC コンパイラ cl.exe (VS 2019 v16.6 で導入された/Zc:プリプロセッサ) で標準準拠 C プリプロセッサを使用してコンパイルするときのエラーに対処するために、SDK ヘッダーが更新されました。

  • "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 と互換性がありません。

    • 回避策として、NuGet、vcpkg、または GitHub から入手できる最新バージョンの DirectXMath を使用します。 これらのバージョンには、必要なホット修正プログラム (バージョン 3.16b) が含まれます。
  • 一部のヘッダー ファイルの大文字と小文字が変更され、大文字と小文字が区別されるファイル システム用に正規化されました。

    • OAIdl.h、ObjIdl.h、ObjIdlbase.h、OCIdl.h、Ole2.h、OleAuto.h、および OleCtl.h はすべて小文字になりました。
    • Clang/LLVM for Windows ビルドの場合、以前のバージョンと最新の Windows 10 SDK の両方を警告なしでサポートするには、CLI に -Wno-nonportable-system-include-path を追加するか、ソースで次の #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 が動作しなくなる問題を解決しました
  • "タスクが HighVersionLie を有効にできませんでした" で WACK が失敗する原因となった問題を解決しました

その他のリソース