VC++でどのWindowsSDKを選択するべきか

Windows 10 環境で VC++ の コンパイルに使用する Windows SDK バージョン にどれを指定したらしいのかのメモです。

結論から言うと基本的にターゲットの Windows のバージョンに合わせます。

対応表

Date Windows10 Ver. Windows SDK Ver. メモ
2015/07/29 1507 10.0.10240 2017年5月9日にサポート終了済
2016/04/08 1511 10.0.10586.212
2016/11/29 1607 10.0.14393.795
2017/07/11 1703 10.0.15063.468
2018/01/18 1709 10.0.16299.91
2018/07/10 1803 10.0.17134.12
2019/03/28 1809 10.0.17763.0
2019/05/21 1903 10.0.17763.0
2019/11/12 1909 10.0.18362.1
2020/05/27 2004 10.0.19041.0
  • 1809 なら 10.0.17763.0 でビルドする
  • 1809 で 10.0.19041.0(2004相当)だと新しい機能を使うと問題が起きる可能性がある
    • 特に自PCと動作環境が違うと問題が起きても気が付かない可能性がある
  • Windows IoT版も同じ。リリース時はLTS版を使うことになるが、通常の Win10 と同じ番号が振ってあるのでそれを利用する。少し古いバージョンを使うことになるのでデスクトップPCとバージョンが違うので注意。

参考資料

MS のサイトはリンクが切れやすいのでなかったらGoogle検索で探す事

Windows SDK アーカイブ https://developer.microsoft.com/ja-jp/windows/downloads/sdk-archive/

IoT は Wikipedia が怪しい?バージョンは MS のサイトか代理店に確認すること。

Windows10 Wikipedia https://ja.wikipedia.org/wiki/Microsoft_Windows_10#20H1_(ver2004)

Windows10 IoT Wikipedia https://ja.wikipedia.org/wiki/Microsoft_Windows_10_IoT