У меня есть проект, созданный в Visual Studio 2010. Когда я пытаюсь запустить проект в Visual Studio 2015 Community Edition, я получаю сообщение об ошибке ниже:
Код серьезности Описание Строка файла проекта
Ошибка 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 ошибок.
Есть ли способ заставить проект работать?
Если вы не можете установить 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 ++ Team Blog.
Имейте в виду, что 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.