Как установить (v142) Инструменты сборки в Visual studio

Поскольку я пытаюсь что-то построить в visual studio, то visual studio показывает мне предупреждение, а затем, если я проигнорировал это и произвел build, то произошла ошибка.

    error MSB8020: The build tools for v142 (Platform Toolset = 'v142') 
    cannot be found. To build using the v142 build tools, please install 
    v142 build tools.

Это также покажет мне альтернативный вариант, который я тоже пробовал, но не работает.

    Alternatively, you may upgrade to the current 
    Visual Studio tools by selecting the Project menu or right-click the 
    solution, and then selecting "Retarget solution".

9 ответов

У меня была такая же проблема, но когда я пытался открыть проект, сделанный в VS2019, с помощью VS2017, я изменил это в своем проекте:

Перейдите в: Project->Properties->General->Platform Toolset и измените текущую версию своего VS.

Это сработало для меня!

Суть в том, что вам необходимо установить Visual Studio 2019 для доступа к инструментам v142.

Наряду с различными версиями Visual Studio (VS2015, VS2017, VS2019) Microsoft также выпускает различные версии инструментов сборки, поскольку они продолжают улучшать компилятор и предоставлять дополнительные возможности и соответствовать обновленным языковым стандартам (C++, C++11, C++17 и др.). См. Visual Studio 2015, не обнаруживающую инструменты сборки v141 (2017).

См. Также это сообщение в блоге Microsoft об инструментах сборки для VS2017 и доступе к более ранней версии v140 из VS2015. Инструменты сборки Visual Studio теперь включают наборы инструментов VS2017 и VS2015 MSVC.

Многие из вас сказали нам, что вам все еще нужен набор инструментов MSVC v140 из Visual Studio 2015, чтобы продолжить создание старых кодовых баз. Мы обновили инструменты сборки Visual Studio, включив в них набор инструментов v140 из Visual Studio 2015 с обновлением 3, включая последний выпуск обслуживания. Вы можете заметить, что версия сборки набора инструментов компилятора может не соответствовать версии в полной установке VS 2015, даже если это одни и те же компиляторы. Это происходит потому, что мы создаем полную Visual Studio и инструменты сборки Visual Studio в отдельных ветках, которые могут быть созданы в разные дни.

Рабочая нагрузка инструментов сборки Visual C++ в Visual Studio Build Tools по умолчанию устанавливает последний набор инструментов v141 из VS2017. Набор инструментов v140 из VS2015 будет устанавливаться параллельно с набором инструментов v141. Чтобы установить их, просто выберите "Набор инструментов VC++ 2015.3 v140 для настольных ПК (x86,x64)" в нижней части раздела "Дополнительно".

В вашем случае инструменты сборки V142 были выпущены с VS2019. Не похоже, что версия 142 доступна для VS2017. Последние инструменты сборки для VS2017 выглядят как v141.

Вы можете использовать установщик Visual Studio для изменения доступных инструментов сборки путем добавления или удаления из списка. В этом сообщении SO описывается аналогичная проблема, но с отсутствием v140 в установке VS2015 Visual Studio. Ошибка MSbuild: инструменты сборки для v140 (Platform Toolset = 'v140') не могут быть найдены

Однако, если Microsoft не выпустила конкретную версию Build Tools для используемой вами Visual Studio, она не будет отображаться в списке доступных наборов инструментов.

В качестве побочного примечания, делая небольшое открытие по этому вопросу, я нашел несколько статей, в которых указано, что если у вас установлена ​​последняя версия Visual Studio, а затем установлена ​​более ранняя версия Visual Studio, инструменты целевой сборки по умолчанию также могут измениться на инструменты сборки для более ранней установки.

Другими словами, если у вас есть VS2019 с уже установленной целью по умолчанию v142, а затем устанавливается VS2017, цель по умолчанию изменится на v141, требуя, чтобы вы фактически установили цель сборки на v142 при использовании VS2019.

Похоже, что начиная с VS2015, Microsoft предоставляет стандартный движок Visual Studio, который является общим для VS 2015, VS2017 и VS2019, с обновленными инструментами сборки и различными компонентами для обеспечения новых функций и соответствия новым языковым стандартам. Существуют зависимости между версией Visual Studio и тем, какие инструменты и компоненты сборки можно использовать с версией Visual Studio, например, версия 142 недоступна для VS2017, скорее всего, для стимулирования покупки нового продукта.

Откройте Visual Studio, которую я использую (версия 17.1.0). Скачайте нужный файл и установите его.

У меня была та же проблема, но я хотел сохранить поддержку Visual Studio 2017 и Visual Studio 2019 для создания одного и того же проекта.

Я отредактировал свой .vcxproj, который является файлом формата MSBuild, например:

Раньше (набор инструментов 1.42, доступный только в Visual Studio 2019, не работает в Visual Studio 2017):

...
  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="Configuration">
    ...
    <PlatformToolset>v142</PlatformToolset>
    ...
  </PropertyGroup>
...

После этого версия Visual Studio для 2017 будет '15.0', а набор инструментов - 1,41:

...
  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="Configuration">
    ...
    <PlatformToolset Condition="'$(VisualStudioVersion)' != '15.0'" >v142</PlatformToolset>
    <PlatformToolset Condition="'$(VisualStudioVersion)' == '15.0'" >v141</PlatformToolset>
    ...
  </PropertyGroup>
...

Я использую Visual Studio 2017 и Visual Studio 2019 на двух разных компьютерах и регулярно испытываю проблемы с набором инструментов платформы.

В VS 2019 при открытии решения / проекта, созданного с помощью VS2017, я обычно просто перехожу к "проектам" в строке меню вверху и выбираю "перенацеливание решения" (это, вероятно, устанавливает платформу на V142).

напротив, в VS 2017 при открытии решения / проекта, созданного с помощью VS2019 (набор инструментов платформы v142), чтобы он работал, мне нужно "понизить" его до платформы v141. Для этого я щелкаю правой кнопкой мыши по проекту (а не по решению) и выбираю свойства, затем "Общие" и ищу "набор инструментов платформы", который я установил на "Visual Studio 2017 (v141)", а затем я могу снова скомпилировать без ошибок..

У меня была похожая проблема. У меня была пробная версия VS2019 Professional. Я работал над некоторыми проектами, используя это, но позже мне пришлось перейти на VS2017 Professional (на который у меня была лицензия). Итак, в моем проекте я перенацелил проект, чтобы отразить новую версию (Проект -> Решение Retarget), и выбрал Windows SDK версии 10.0.17763.0 (в моем случае). После этого я перешел к (Проект -> Свойства) и в (Свойства конфигурации -> Общие -> Набор инструментов платформы) я перешел на Visual Studio 2017 (v141). Это должно было решить проблему, но во время сборки я получил сообщение об ошибке «Ошибка MSB8020: инструменты сборки для v142 (набор инструментов платформы = 'v142') не найдены». Чтобы решить эту проблему, мне пришлось открыть .vcxproj в блокноте++.

      <PropertyGroup Label="Configuration">
<OutDir>../bin/</OutDir>
<ConfigurationType>Utility</ConfigurationType>
<CharacterSet>MultiByte</CharacterSet>
<PlatformToolset>v142</PlatformToolset>

Я изменил последнюю строку в этом блоке кода на v141. Кажется, изменение свойств проекта не приводит к автоматическому изменению файла .vcxproj. После этого мой проект построен без ошибок.

также я столкнулся с той же проблемой. Я запускаю код C++ в VS 2019. Я пробовал разные способы, но не смог решить. Наконец я нашел статью, которая помогла мне, после чего мой код заработал: эта статья полезна

У меня это сработало: зайдите в файл ProjectName.vcxproj, удалите сценарий сборки v142 и замените его сценарием сборки, который соответствует используемой вами версии Microsoft Visual Studio.

После установки последнего обновления VS2019 у меня возникла точно такая же проблема, как и у оригинального плаката, т.е. ошибка MSB8020 re: сборка приложений в VS2017. Я использовал самое простое приложение из серии, которое не собиралось (все с ошибкой выше), и использовал «Перенацелить решение», выбрав Windows SDK версии 10.0.17763.0. После этого я сделал перестройку, и приложение установилось нормально. Я проверил свойства каждого проекта в решении, и версия Windows SDK изменилась на 10.0.17763.0, как и следовало ожидать.

Когда я затем открыл другие приложения VS2017, все они тоже были созданы без каких-либо изменений (ранее все эти приложения не работали). Однако их свойства проекта по-прежнему ссылаются на версию SDK 10.0.14393.0, которая предположительно является версией VS2019. Все приложения теперь «волшебным образом» отображают свой набор инструментов как Visual Studio 2017 (v141). HTH, даже если не объяснить, почему это работает.

Другие вопросы по тегам