Visual Studio 2019: как использовать Platform Toolset v140_xp? - PullRequest
0 голосов
/ 07 ноября 2019

Я пытаюсь скомпилировать приложение для Windows XP с использованием Visual Studio 2019. Для этого я попытался использовать платформу инструментов v140_xp. Это не работает, появляется следующее сообщение об ошибке:

C:\Program Files (x86)\MSBuild\Microsoft.Cpp\v4.0\V140\Platforms\Win32\PlatformToolsets\v140_xp\Toolset.targets(36,5): warning MSB8003: Could not find WindowsSdkDir_71A variable from the registry.  TargetFrameworkVersion or PlatformToolset may be set to an invalid version number.
C:\Program Files (x86)\MSBuild\Microsoft.Cpp\v4.0\V140\Microsoft.CppBuild.targets(366,5): warning MSB8003: Could not find WindowsSDKDir variable from the registry.  TargetFrameworkVersion or PlatformToolset may be set to an invalid version number.

Очевидно, что инструменты ищут Windows SDK v7.1A. Загрузка Windows 7 SDK от Microsoft не работает. Даже если вам удастся установить его, SDK имеет версию 7.1 (без A), а не 7.1A. Таким образом, ошибка остается.

Я обнаружил, что Windows SDK v7.1A раньше был включен в Visual Studio 2015, но я не могу найти его нигде в установщике Visual Studio 2019.

Как использовать набор инструментов v140_xp?

Шаги, чтобы воспроизвести проблему:

  • установить Visual Studio 2019 с разработкой для рабочего стола c ++
  • выбрать "MSVC v140 - VS2015 C ++Инструменты сборки »в установщике Visual Studio 2019
  • создать проект консольного приложения C ++
  • изменить настройки проекта
  • выбрать набор инструментов платформы v140_xp
  • попытатьсяпостроить проект

1 Ответ

1 голос
/ 07 ноября 2019

В установщике Visual Studio 2019 Windows SDK 7.1A скрывается за параметром «C ++ - Поддержка Windows XP для инструментов в VS 2017 (v141) [устарело]». (Мне пришлось перевести это имя с немецкого на английский, поэтому этот параметр можно назвать немного другим.)

При наведении указателя мыши на этот параметр появляется всплывающая подсказка, в которой говорится, что Windows SDK 7.1 включен в этот компонент.

...