Локальное окружение проекта в MSVS

Подскажите пожалуйста, как у вас решается следующий вопрос.
Для разработки используется Visual Studio 2010 или WinSDK 7.1 (т.е. только компиляторы без среды). Необходимо для каждого проекта создать легко переносимое локальное окружение.

Т.е. допустим для разработки используется Qt4, но есть старые проекты, но все еще живые, использующие Qt3. И те и те библиотеки используют одну переменную окружения QTDIR. Если нам надо одновременно использовать ia32 и x64 билды, все становится еще сложнее. Каждый раз править окружение машины — неудобно. Править конфигурации проектов (vcxproj) при переходе с машины на машину — тоже неприемлемо.

Хотелось бы какого-либо элегантного решения, типа может локального файла с настройками проекта, в лучшем случае per configuration. В предыдущих версиях студии можно было использовать подключаемые Property Sheets (файлы vsprops), правда разрабы частенько забывают их подключать… В общем как-то не сильно удобнее.

В общем если есть опыт подобных решений, поделитесь пожалуйста :)
  • Вопрос задан
  • 3727 просмотров
Пригласить эксперта
Ответы на вопрос 3
@Fahrenheit
Property Sheets — это как раз и есть рекомендуемое решение, позволяет очень гибко кастомизировать параметры проектов (а благодаря возможности наследования получается минимальное дублирование настроек).
Они отлично работают и в VS10, и в VS2012
Ответ написан
1. Самый дубовый вариант, на мой взгляд, сделать несколько *.bat файлов с прописыванием разных переменных окружения для MSVC. В случае запуска самой VS у devenv есть нужные параметры командной строки. Если же сборка идет из командной строки с использованием msbuild, то он тоже умеет все что нужно. В самих же проектах в настройках нужно просто использовать проставленные переменные окружения.
2. Другой вариант — Property Sheets, как уже было сказано ранее. С учетом что они поддерживают наследорвание и возможность определения своих макросов, сделать в них можно что угодно. Что с ними не очень удобно, так это рост количества конфигураций.
Ответ написан
@tbd
внутри vcxproj файлы имеют формат msbuild'a
для задания различных условий можно использовать Conditional Constructs + Import Element
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы