Как установить Visual Studio Build Tools 2010 в сообществе Visual Studio 2015?
У меня есть проект, созданный в Visual Studio 2010. Когда я пытаюсь запустить проект в выпуске Visual Studio 2015 Community, я получаю сообщение об ошибке ниже:
Код серьезности Описание Ошибка строки файла проекта MSB8020 Инструменты сборки для Visual Studio 2010 (Platform Toolset = 'v100') не найдены. Для сборки с использованием инструментов сборки v100, пожалуйста, установите инструменты сборки Visual Studio 2010. Кроме того, вы можете перейти на текущие инструменты Visual Studio, выбрав меню "Проект" или щелкнув правой кнопкой мыши решение и выбрав "Ретаргетинг решения". графика C:\Program Files (x86)\MSBuild\Microsoft.Cpp\v4.0\V140\Microsoft.Cpp.Platform.targets 55
И когда я пытался собрать его с помощью инструментов сборки Visual Studio 2015, я обнаружил более 1500 ошибок.
Есть ли способ заставить проект работать?
2 ответа
Если вы не можете установить VS2010, Windows SDK для Windows 7 содержит необходимые инструменты компилятора (v100), вы можете фактически пропустить установку самого SDK и установить только инструменты, заголовки и библиотеки компилятора. Обратите внимание, что компилятор, включенный в Windows SDK, является тем же, что и VS2010, но VS2010 SP1 имеет немного более новый компилятор. Если вам это нужно, вам также необходимо установить обновление компилятора Microsoft Visual C++ 2010 с пакетом обновления 1 (SP1) для Windows SDK 7.1. Но учтите, что если вы установите их, у вас могут возникнуть проблемы позже, если вы решите установить VS2010, в установщике есть ошибки, требующие установки компонентов в строгом порядке. Кроме того, если ваш код использует MFC или ATL, вы должны установить VS2010, установки Windows SDK будет недостаточно.
Вы либо устанавливаете VS 2010 и создаете свой проект, либо, что еще лучше, обновляете свои проекты. Выборочная установка VS 2015 позволит вам установить v120
Набор инструментов платформы, но не v110
или же v100
Наборы инструментов платформы.
Одним из основных изменений в VS 2015 является то, что инструменты C++ (т.е. v140
) не устанавливаются опцией Обычная установка. Смотрите блог команды Visual C++.
Имейте в виду, что Visual C++ 2010 использовал черновой стандарт C++ 0x, а Visual C++ 2015 соответствует стандарту C++ 11, за исключением Expression SFINAE (который частично присутствует в обновлении 1), поэтому немало изменилось в прошедшие годы, включая некоторые серьезные изменения. Поскольку вы перепрыгиваете сразу три основных релиза - и около 10 незначительных обновлений - это может быть немного ошеломляющим, особенно прорабатывая все новые предупреждения.
Следует также помнить, что Visual C++ 2010 использовал Windows 7.1 SDK, а Visual C++ 2012 или более поздней версии - Windows 8.x SDK. Там тоже было много изменений, особенно для разработки DirectX. Для настольных приложений Windows особенно важно, чтобы _WIN32_WINNT
препроцессор определяют для вашей целевой платформы, так как SDK для Windows 8.x по умолчанию не является "самой старой поддерживаемой платформой", как это было в предыдущих Windows SDK. См. Использование заголовков Windows
VS 2010 и
v100
Набор инструментов поддерживает ориентацию на Windows XP и Windows Server 2003.v140
Набор инструментов не поддерживает таргетинг на Windows XP / Server 2003. Вы должны использоватьv140_xp
Набор инструментов платформы вместо. См. Этот пост для некоторых заметок, поскольку это означает, что вы снова используете Windows 7.1 SDK, а не Windows 8.x SDK с_xp
наборы инструментов.
См. Разрыв изменений в Visual C++ 2012, Разрыв изменений в Visual C++ 2013 и Разрыв изменений в Visual C++ 2015.
См. Также Поддержка функций C++11/14/17 (современный C++) и Где находится DirectX SDK?,
Если вам нужно создать код как с VS 2010, так и с VS 2015, то вам нужно создать два файла проектов / решения, по одному для каждого. Возможно, вы также захотите прочитать эту статью, чтобы прочитать некоторые заметки о написании кода, который может быть собран с несколькими наборами инструментов Visual C++, что опять-таки особенно сложно из-за изменений в Windows SDK.
VS 2015 поддерживает таргетинг на Windows Vista SP2, Windows 7 SP1, Windows 8.0, Windows 8.1, Windows 10 и, опционально, Windows XP SP3. Он не поддерживает таргетинг на Windows Vista RTM, Windows Vista SP1 или Windows 7 RTM.