Windows SDK

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

ヒント

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

作業の開始

このページから Windows SDK をインストールするには、ダウンロード リンクを選択するか、Visual Studio 2022 インストーラーのオプション コンポーネントで "Windows 11 SDK (10.0.22621.0)" を選択します。 SDK をインストールする前に:

最終更新日: 2021 年 10 月 4 日

システム要件

Windows SDK の最小システム要件は次のとおりです。

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

  • Windows 10 バージョン 1507 以降: Home、Professional、Education、Enterprise (LTSB および 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 の使用

新しい 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 に対してリンクしていたアプリは、代わりに 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 ヘルパーは、任意に 1 つまたは複数を選択する代わりに、各 .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 変換を回避し、1 バイト文字セットを想定してテキスト処理を実行しました。 これにより、入力ファイルが現在のコード ページに準拠していない場合に動作が変更される可能性があります。 この問題が発生した場合は、入力ファイルを UTF-8 (BOM を使用) に変換するか、-cp:UTF-8 コマンド ライン パラメーターを使用してエンコードのあいまいさを回避することを検討してください。
  • TraceLoggingProvider.h の更新:

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

  • MSVC コンパイラ cl.exe (/Zc:プリプロセッサ、VS 2019 v16.6 で導入) で標準準拠 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 と互換性がありません。

  • 一部のヘッダー ファイルの大文字と小文字が変更され、大文字と小文字が区別されるファイル システム用に正規化されました。

    • OAIdl.h、ObjIdl.h、ObjIdlbase.h、OCIdl.h、Ole2.h、OleAuto.h、OleCtl.h はすべて小文字になりました。
    • Clang/LLVM for Windows ビルドの場合、警告なしで古いバージョンと最新のWindows 10 SDK の両方をサポートするには、CLI に追加するか、ソースで次の#pragmaを追加-Wno-nonportable-system-include-pathします。

    #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 が失敗する原因となった問題を解決しました

その他のリソース