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)]を選択して、このページからインストールする 2 つの方法で入手できます。 SDK をインストールする前に:

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

システム要件

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

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

  • Windows 10 バージョン 1507 以降: ホーム、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。Nuget パッケージをコントラクト化します

  • 関数の printf ファミリは、正確に表される浮動小数点数を印刷するときに IEEE 754 丸め規則に準拠 するようになりました。 fesetround への呼び出しを介して要求された丸めモードを尊重します。 従来の動作は、 legacy_stdio_float_rounding.obj とリンクするときに使用できます。

  • アプリ認定キットをWindowsします。 アプリ認定キットとWindows Microsoft Storeで、サポートされている 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の定義を尊重するようになりました)。
  • トレース プリプロセッサ (tracewpp.exe) の更新をWindowsします。

    • 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と Education で使用できる Device Guard 機能です。これにより、企業はすべてのアプリが信頼できるソースから取得されることを保証できます。 Device Guard 署名に関するドキュメントを参照してください。

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

  • 修正済み: "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 の両方をサポートするには、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 の動作を妨げる問題を解決しました
  • WACK が "Task failed to enable HighVersionLie" で失敗する問題を解決しました

その他のリソース