Решения Visual Studio - как обеспечить совместное использование свойств проекта?
Если вы используете Visual Studio 2008 и у вас есть много файлов проекта в решениях, как вы поддерживаете их синхронизацию? Другими словами, если вы измените свойство в одном проекте, как вы обеспечите автоматическое изменение этого свойства в других проектах?
4 ответа
В итоге я использовал глобальные переменные, доступные в Visual Studio. Это были переменные типа $ProjectName и тому подобное. В VS уже есть много доступных, они также могут быть определены пользователем.
Учитывая, что достаточное количество участников озадачено понятием вложенных решений, я просто буду исходить из того, что вы имели в виду "решение с несколькими проектами". Вы задаете им общие настройки, используя страницу свойств проекта. Начните с просмотра + другой Windows + Property Manager. Откройте один из узлов, щелкните правой кнопкой мыши конфигурацию и выберите Добавить новый. Выберите местоположение, которое имеет смысл для решения, например, каталог решений. Настройте параметры так, как вы хотите.
Повторите эту процедуру для всех других проектов в вашем решении, теперь используя Add Existing. Каждый проект будет наследовать настройки, которые вы настроили на листе, если он не переопределяет их явно. Возможно, вам придется вернуться к свойствам проекта и изменить переопределение обратно на "наследовать".
Поддержка IDE для листов свойств проекта немного ненадежна, обязательно сохраняйте их явно при внесении изменений.
Я должен сказать, что я не слышал о "вложенных решениях", и мне нужна довольно веская причина, чтобы сделать что-то подобное. Особенно учитывая, что ваш вопрос действительно сосредоточен на том, "как мне поддерживать дублирование?" так как вы говорите, что решения будут разделять свойства. Это основное правило в программировании "не дублируй себя".
Вы можете поместить необходимые параметры в файл ответов компилятора и использовать один и тот же файл ответов в каждом из ваших файлов.vcproj.
Смотрите здесь: http://msdn.microsoft.com/en-us/library/3te4xt0y(VS.71).aspx
По сути, вы создаете текстовый файл, например SharedOptions.rsp, и в каждой строке файла указываете другой параметр компилятора командной строки. Как /I.\include или /DDEFINE или что-то еще.
Затем на странице свойств командной строки C++ каждого проекта вы добавляете это в поле дополнительных параметров: @"SharedOptions.rsp".
Затем, когда вы редактируете опции в текстовом файле, они будут выбраны всеми проектами. Вполне возможно, что решение для управления собственностью, предоставленное nobugz, является просто графическим интерфейсом для этого - я не знаю, я скорее любитель командной строки.
Я думаю, что вы уже что-то сделали с этим в последние 2 месяца, но этот ответ больше для гуглеров...