Фон
Я открываю несколько старых приложений Visual Studio, которые я создал некоторое время назад. Я создал новые решения, используя для этого новую среду VS2012, и создал проекты, созданные как хранилища git. Я получил все, что отлично работает в Visual Studio 2012 без каких-либо изменений в исходном коде, все, что мне нужно было сделать, это убедиться, что я связываю правильные библиотеки в новых конфигурациях проекта.
Я хотел бы настроить эти проекты, чтобы иметь максимальную совместимость для других, загружающих проект из Github. На этой машине у меня есть VS2010, установленный вместе с последней версией VS2012. После того, как я получил все, что работает для обоих проектов в VS2012, я попытался открыть их в VS2010.
Когда я попытался построить, я получил одну ошибку:
Specified platform toolset (v110) is not installed or invalid.
Please make sure that a supported PlatformToolset value is selected.
C:\Program Files (x86)\MSBuild\Microsoft.Cpp\v4.0\Platforms\Win32\Microsoft.Cpp.Win32.Targets 518
Что я пробовал
Итак, я открыл свойства для проекта, перешел на Configuration Options --> General
, а Platform Toolset действительно был установлен на Visual Studio 2012 (v110)
. Этот ввод представляет собой раскрывающийся список, а значение v110
не указано, вместо этого я получаю два варианта:
- v100
- v90
Они соответствуют VS2010 и VS2008 соответственно. Если я изменю значение на v100 и перестрою, я не получу никаких ошибок, и моя программа отлично работает в моей среде Visual Studio 2010.
Когда я открываю проект в Visual Studio 2012, если говорит мне, что у меня есть старый файл проекта и спрашивает, хочу ли я обновиться, я говорю "да" и он обновляется. Я перестраиваю и запускаю, чтобы убедиться, что все еще работает. Когда я открываю параметры конфигурации в VS2012, Набор инструментов для платформы устанавливается на "Visual Studio 2012" (v110), но при нажатии на выпадающий вход есть еще несколько вариантов:
- Visual Studio 2012 (v110)
- v110_wp80
- Visual Studio 2012 - Windows XP (v110_xp)
- Visual Studio 2010 (v100)
- Visual Studio 2008 (v90)
- & lsaquo; унаследовать от родительских или проектов defaults & rsaquo;
Мои вопросы
Это привело меня к нескольким вопросам. Я собираюсь представить их всех. Было бы неплохо получить как можно больше информации, но хороший ответ на один из них, вероятно, решит мою проблему.
-
Если я не использую функции, специфичные для более новых версий Visual Studio, можно ли настроить решение, которое можно открыть и запустить без изменений в максимально возможном количестве версий (например, 2008, 2010, или 2012)? Если да, то как?
-
Если я установил Platform Toolset в v90 (VS2008) из Visual Studio 2012 и смог создать и запустить, означает ли это, что он будет создавать и запускать для пользователей с VS2012, VS2010 и VS2008?
-
Что именно делает опция
<inherit for parent or project defaults>
? Какими будут настройки проекта по умолчанию? Можно ли это использовать, чтобы сообщить Visual Studio, чтобы попытаться использовать в зависимости от того, какой из установленных Инструментов платформы будет работать. -
Есть ли другие возможности помимо Platform Toolset в Visual Studio, которые я могу установить для повышения совместимости с другими средами разработки?