Ошибка реестра Windows SDK не найдена
Я не могу создать свой проект в 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 SDK/v7.1 со значением C:\Program Files\Microsoft SDK\Windows\v7.1).
Это проблема с реестром или что-то еще? Я попытался найти эти ключи реестра и переустановить мой Windows SDK, но не помог.
Ответы
Ответ 1
Я пытался получить script для компиляции для script Hook V - библиотеки GTA.NET.
Я потратил около 2 часов, пытаясь понять, почему это не сработает. Вот как я его создал:
Я щелкнул правой кнопкой мыши по проекту и выбранным свойствам:
![Step1]()
В разделе Свойства конфигурации → Общие → Набор инструментов для платформы
Я выбрал раскрывающийся список и выбрал только один доступный
(Для меня это была Visual Studio 2013 - Windows XP (v120_xp))
![Platform Toolset]()
После этого я смог нормально летать на своем автомобиле:
![Weeee]()
Надеюсь, что это поможет кому-то другому попытаться сделать то же самое.
Ответ 2
У меня была такая же проблема с Visual Studio 2013 (никаких пакетов Service-pack не установлены). По-видимому, во время установки ему требуется активное подключение к Интернету или может отсутствовать путь sdk.
Просто зайдите в свою панель управления/программы/программы и функции - и выберите "Microsoft Visual Studio xxx 2013", щелкните правой кнопкой мыши и измените "затем". Это займет несколько минут, но потом путь sdk правильный.
Ответ 3
У меня возникла эта проблема в последнее время при попытке установить определенные пакеты Node.js! Я наконец исправил его, добавив правильный путь к переменной реестра!
Самый простой способ исправить это - установить его с помощью простого script.
Windows Registry Editor Version 5.00
[HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\Microsoft SDKs\Windows]
"CurrentInstallFolder"="C:\\Program Files (x86)\\Windows Kits\\8.1\\"
Это должно исправить это для любых 64-разрядных пользователей Windows 8.1, но если у вас установлен Windows SDK в другом каталоге, просто замените C:\Program Files (x86)\Windows Kits\8.1
на соответствующий каталог. Вот несколько мест, которые вы можете попробовать:
- C:\Program Files (x86)\Windows Kits
- C:\Program Files (x86)\Microsoft SDK\Windows
- C:\Program Files (x86)\Microsoft\Microsoft SDK\Windows
Примечание. Обязательно добавьте версию и до конца пути; например, 8.1
находится в конце моего пути. В принципе, вам нужно получить полный путь к SDK Windows и не только папку, содержащую основные папки для SDK Windows.
Ответ 4
Как отметил Парвез, проект New С++, затем "Установить поддержку Windows XP для С++"
![введите описание изображения здесь]()
Ответ 5
Попробуйте вызвать SetEnv.cmd вручную в командной строке:
call "C:\Program Files\Microsoft SDKs\Windows\v7.1\bin\Setenv.cmd" /Release /x86
ИЛИ
call "C:\Program Files\Microsoft SDKs\Windows\v7.1\bin\Setenv.cmd" /Release /x64
Ответ 6
Установка Windows SDK v8.1 решила его для меня.
Ответ 7
Для меня это работает:
Проверьте значение в "вашем".vcxproj <PlatformToolset>"some version"</PlatformToolset>
Я знаю, что это странно, но:
Я установил VC2012 и VC2010, и я скомпилирую проект с 2012 года в 2010 году с помощью набора инструментов "v110".
Ответ 8
Я получил ошибку, упомянутую ниже, когда я пытался установить драйвер oracle для nodejs, используя npm install oracledb
. У меня есть 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 могут быть установлены на неверный номер версии.
Установка компилятора VС++, как упомянуто здесь, разрешила проблему для меня. Для справки - это действие.
Вам нужно запустить Visual studio, затем выполните: file > new > project, in в открывшемся окне выберите "Модель > Visual С++" и в середине окна вы должны увидеть кнопку "установить microsoft С++" или что-то вроде этого, щелкните по нему, и он запустит установку процесс для С++ и Microsoft SDK. После этого он будет работать как ожидаемый!
Ответ 9
У меня была такая же проблема с VS2012. У меня были установлены как 2013, так и 2012 года на моей машине и возникла проблема после удаления VS2013 (который я больше не использовал из-за истекшей лицензии).
Связанные выше ключи реестра не помогли мне. На мой взгляд, независимо от вашей версии VS, самый безопасный способ решить эту проблему - найти командный файл VS, используемый для загрузки этих макросов, который, кажется, является VCVarsQueryRegistry.bat в 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"
)
)
Из чего видно, что WindowsSdkDir в 64-битной системе задается значением реестра SOFTWARE\Wow6432Node\Microsoft\Microsoft SDK\Windows\v8.0\InstallationFolder в HKEY_CURRENT_USER или HKEY_LOCAL_MACHINE в зависимости от вашей конфигурации.
Ответ 10
Я также столкнулся с той же проблемой.
Установка Windows SDK v8.1 решила его для меня.
https://msdn.microsoft.com/en-us/windows/desktop/bg162891.aspx