今日、Visual Studio 2017には同じ問題がありました。
私の場合、原因はNETFXSDKDir(NETFXSDKDir=C:\Program Files (x86)\Windows Kits\NETFXSDK\4.6.1
)の環境設定が悪いことが判明しました。代わりにNETFXSDKDir=C:\Program Files (x86)\Windows Kits\10\Lib\10.0.10240.0\um\x86
である必要があります。具体的には、VS2017のコマンドプロンプトについては、このバッチファイル(私のディレクトリが実際に4つの異なるファイルを持っている)に設定されたとおり、私は、「インストールとして」バッチファイル&hellipの1つを変更するには消極的だとして
%comspec% /k "C:\Program Files (x86)\Microsoft Visual Studio\2017\Enterprise\VC\Auxiliary\Build\vcvars32.bat"
。そのバッチファイルが別のさらに別のを呼び出すさらにとして:のような「ライブラリディレクトリ」の合計の文字列を;C:\Program Files (x86)\Windows Kits\10\Lib\10.0.10240.0\um\x86
:
@call "%~dp0vcvarsall.bat" x86 %*
...代わりに私の具体的なC++のコマンドラインアプリのために、私は単に明示的なパスのテキストを追加しましたこれは$(VC_LibraryPath_x86);$(WindowsSDK_LibraryPath_x86);$(NETFXKitsDir)Lib\um\x86;C:\Program Files (x86)\Windows Kits\10\Lib\10.0.10240.0\um\x86
です。 (プロジェクトを右クリックし、プロパティ→構成プロパティ→ VC++ディレクトリ→ライブラリディレクトリ。)それは私の "致命的なエラーを解決しました:LNK1104: 'kernel32.lib'ファイルを開くことができません"エラー。私はそのヒントをthis GitHub issueで見つけました。
「修復」インストール&hellipが正常に実行された後でも、これはVisual Studio 2017 Enterprise 2017バージョン15.1(26403.0)で再現可能です。新しいVisual C++ Win32コンソールアプリケーションを作成してコンパイルしようとするとき。
実際、空のアプリケーションが作成されない限り、デフォルトテンプレートには<SDKDDKVer.h>
への参照が含まれており、この追加エラー:Error (active) E1696 cannot open source file "SDKDDKVer.h"
が表示されます。だから私はcreated an empty C++ projectです。
私はこれを試したいと思います:最初にあなたのProgram Filesディレクトリにkernel32.libがインストールされているかどうかを確認し、プロジェクトのVC++ディレクトリのプロパティページにリストされているライブラリディレクトリをチェックし、 –
これは、VS2017のインストールで複数のSDKをインストールした場合のパス混在によってトリガーされました。 VS2017インストーラを使用してすべてのWin10 SDKとツールセット(140と141)を削除し、インストールを更新してから、VS2017インストーラで再インストールしました。その後、問題は解決しました。 –