Visual Studio 2012でプロジェクトをビルドできません。エラーは次のとおりです。
1> C:\ Program Files(x86)\ MSBuild\Microsoft.Cpp\v4.0\V110\Microsoft.CppBuild.targets(344,5):警告MSB8003:レジストリからWindowsSDKDir変数が見つかりませんでした。 TargetFrameworkVersionまたはPlatformToolsetが無効なバージョン番号に設定されている可能性があります。」
Windows SDKをインストールし、再インストールと修復を試みました。レジストリ文字列キー「WindowsSDKDir」をレジストリに入力しようとしました。 (HKLM/SOFTWARE/Wow6432Node/Microsoft/Microsoft SDKs/v7.1 with C:\ Program Files\Microsoft SDKs\Windows\v7.1).`
それはレジストリの問題ですか、それとも何か他のものですか?これらのレジストリキーを検索して、Windows SDKを再インストールしようとしましたが、どちらも役に立ちませんでした。
Script Hook V-GTA .NET Library用にコンパイルするスクリプトを取得しようとしていました。
なぜ機能しないのかを理解しようとして約2時間費やしました。ここに私がそれを構築する方法があります:
プロジェクトを右クリックし、プロパティを選択しました:
[構成プロパティ]-> [全般]-> [プラットフォームツールセット]
ドロップダウンを選択し、使用可能な他の1つだけを選択しました
(私にとってはVisual Studio 2013-Windows XP(v120_xp))
その後、私は自分の車を普通に飛ばすことができました。
これが他の誰かが同じことをしようとしているのを助けることを願っています。
Visual Studio 2013でも同じ問題が発生しました(サービスパックがインストールされていません)。インストール中にアクティブなインターネット接続が必要か、sdk-pathが欠落しているようです。
コントロールパネル/プログラム/プログラムと機能に移動して、[Microsoft Visual Studio xxx 2013]を選択し、右クリックして[変更]を選択します。数分かかりますが、その後、sdk-pathは正しいです。
特定のNode.jsパッケージをインストールしようとすると、最近この問題が発生しています! I 最終的にレジストリ変数に正しいパスを追加して修正しました!
これを修正する最も簡単な方法は、簡単なスクリプトで設定することです。
_Windows Registry Editor Version 5.00
[HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\Microsoft SDKs\Windows]
"CurrentInstallFolder"="C:\\Program Files (x86)\\Windows Kits\\8.1\\"
_
これにより、Windows 8.1 64ビットユーザー用に修正されますが、Windows SDKを別のディレクトリにインストールしている場合は、C:\Program Files (x86)\Windows Kits\8.1
をそれぞれのディレクトリに置き換えるだけです。試すことができる場所は次のとおりです。
注:パスの最後にも必ずバージョンを追加してください。たとえば、_8.1
_は私のパスの最後にあります。基本的には、Windows SDKへのフルパスを取得する必要があり、not Windows SDKのメインフォルダーを含むフォルダーのみです。
コマンドプロンプトでSetEnv.cmdを手動で起動してみてください。
call "C:\Program Files\Microsoft SDKs\Windows\v7.1\bin\Setenv.cmd" /Release /x86
OR
call "C:\Program Files\Microsoft SDKs\Windows\v7.1\bin\Setenv.cmd" /Release /x64
Windows SDK v8.1をインストールすると解決しました。
私はこれを動作します:
「your」.vcxproj <PlatformToolset>"some version"</PlatformToolset>
の値を確認します
私はそれが奇妙であることを知っていますが:
VC2012およびVC2010をインストールし、ツールセット「v110」を使用して2010年に2012年からプロジェクトをコンパイルしました。
npm install oracledb
を使用してnodejs用のOracleドライバーをインストールしようとしたときに、次のエラーが表示されました。 Windows 7.1 SP1を使用しており、Visual Studio 2015コミュニティエディションをインストールしました。
C:\ Program Files(x86)\ MSBuild\Microsoft.Cpp\v4.0\V140\Microsoft.CppBuild.targets(366,5):MSB8003の警告:レジストリからWindowsSDKDir変数が見つかりませんでした。 TargetFrameworkVersionまたはPlatformToolsetが無効なバージョン番号に設定されている可能性があります。
前述のようにVC++コンパイラをインストールすると here が問題を解決しました。参考のために、ここで実行するアクションを示します。
Visual Studioを起動する必要があります。次に、ファイル>新規>プロジェクトを開き、開いたウィンドウで[モデル]> [Visual C++]を選択します。ウィンドウの中央に[Microsoft C++のインストール]ボタンなどが表示されます。 、それをクリックすると、C++およびMicrosoft SDKのインストールプロセスが起動します。それが完了すると、期待どおりに動作します!
VS2012でも同じ問題が発生しました。私はマシンに2013と2012の両方をインストールしており、VS2013をアンインストールした後に問題が発生しました(ライセンスの期限切れのためにもう使用していませんでした)。
上記のリンクにあるレジストリキーは役に立ちませんでした。私の意見では、あなたのVSバージョンとは関係なく、これに対処する最も安全な方法は、VSがそれらのマクロをロードするために使用するバッチファイルを見つけることですVCVarsQueryRegistry.bat in C:\Program Files(x86)\ Microsoft Visual Studio [YOUR_VERSION] .0\Common7\Tools.
定義されていないことを示す変数VSを探します。次のようなスニペットを見つけることができます。
@set WindowsSdkDir=
@call :GetWindowsSdkDirHelper32 HKLM > nul 2>&1
@if errorlevel 1 call :GetWindowsSdkDirHelper32 HKCU > nul 2>&1
@if errorlevel 1 call :GetWindowsSdkDirHelper64 HKLM > nul 2>&1
@if errorlevel 1 call :GetWindowsSdkDirHelper64 HKCU > nul 2>&1
@exit /B 0
:GetWindowsSdkDirHelper32
@for /F "tokens=1,2*" %%i in ('reg query "%1\SOFTWARE\Microsoft\Microsoft SDKs\Windows\v8.0" /v "InstallationFolder"') DO (
@if "%%i"=="InstallationFolder" (
@SET "WindowsSdkDir=%%k"
)
)
@if "%WindowsSdkDir%"=="" exit /B 1
@exit /B 0
:GetWindowsSdkDirHelper64
@for /F "tokens=1,2*" %%i in ('reg query "%1\SOFTWARE\Wow6432Node\Microsoft\Microsoft SDKs\Windows\v8.0" /v "InstallationFolder"') DO (
@if "%%i"=="InstallationFolder" (
@SET "WindowsSdkDir=%%k"
)
)
64ビットシステムのWindowsSdkDirは、レジストリ値SOFTWARE\Wow6432Node\Microsoft\Microsoft SDKs\Windows\v8.0\InstallationFolderのいずれかで設定されていることを明確にしますHKEY_CURRENT_USERまたは- HKEY_LOCAL_MACHINE設定に応じて。
私も同じ問題に直面していました。
Windows SDK v8.1をインストールすると解決しました。
https://msdn.Microsoft.com/en-us/windows/desktop/bg162891.aspx
同じエラーを報告する同様の問題の私の観察を追加します...
必要なSDKがインストールされていても問題が解決しない場合は、プロジェクトのGeneral構成プロパティでPlatform Toolsetを切り替えてみてください。たとえば、Visual Studio 2013(v120)をVisual Studio 2015(v140)に変更しました。適用後、Platform ToolsetをVisual Studio 2013(v120)に戻し、欠落しているWindowsSDKDirの問題を修正しました設定。
プロジェクトが機能する別のワークステーションに、VS2012がインストールされます。 VS2012のない新しいワークステーションは、欠落しているWindowsSDKDir設定について文句を言います。ただし、Platform ToolsetパラメーターにはVisual Studio 2013(v120)と表示されます