Решения Visual Studio — как обеспечить совместное использование свойств проекта?

Если вы используете Visual Studio 2008 и у вас много файлов проектов в решениях, как вы их синхронизируете? Другими словами, если вы изменяете свойство в одном проекте, как вы гарантируете, что это свойство автоматически изменится в других проектах?


person fooMonster    schedule 05.01.2009    source источник
comment
Вложенные решения? Вы имеете в виду проекты?   -  person Hans Passant    schedule 05.01.2009


Ответы (4)


Учитывая, что достаточно участников озадачены понятием вложенных решений, я просто буду исходить из предположения, что вы имели в виду «решение с несколькими проектами». Вы даете им общие настройки, используя лист свойств проекта. Начните с View + Other Windows + Property Manager. Откройте один из узлов, щелкните правой кнопкой мыши конфигурацию и выберите «Добавить новый». Выберите подходящее место для решения, например каталог решения. Настройте параметры так, как вы хотите.

Повторите эту процедуру для всех других проектов в вашем решении, теперь используя Add Existing. Каждый проект унаследует настройки, настроенные вами на листе, если только он не переопределит их явным образом. Возможно, вам придется вернуться к свойствам проекта и снова изменить переопределение на «наследовать».

Поддержка IDE для листов свойств проекта немного ненадежна, обязательно сохраняйте их явным образом, когда вносите изменения.

person Hans Passant    schedule 09.01.2009
comment
Извините, что мистифицирую... Я уточнил вопрос. - person fooMonster; 09.01.2009

Должен сказать, я не слышал о «вложенных решениях», и мне нужна довольно веская причина, чтобы сделать что-то подобное. Особенно учитывая, что ваш вопрос действительно сосредоточен на том, «как мне поддерживать дублирование?» так как вы говорите, что решения будут иметь общие свойства. Это основное правило программирования "не дублируй себя".

person sliderhouserules    schedule 09.01.2009
comment
слайдер, спасибо за ваш комментарий. Вы будете рады узнать, что я не создавал беспорядок, который описываю, просто пытался оценить степень беспорядка и получить помощь, чтобы исправить это. У вас есть идеи, которые могли бы мне помочь? Спасибо! - person fooMonster; 09.01.2009
comment
Теперь, когда вы изменили свой вопрос, похоже, что это довольно специфично для проектов C++, поскольку у меня никогда не было возможности распространять свойства между любыми проектами C# или VB.NET, над которыми я работал. Я ничего не делал с C++ со школьных лет. - person sliderhouserules; 10.01.2009

Вы можете поместить необходимые параметры в файл ответов компилятора и использовать один и тот же файл ответов в каждом из ваших файлов .vcproj.

См. здесь: http://msdn.microsoft.com/en-us/library/3te4xt0y(VS.71).aspx

По сути, вы создаете текстовый файл, например SharedOptions.rsp, и в каждой строке файла указываете разные параметры компилятора командной строки. Например, /I.\include или /DDEFINE или что-то еще.

Затем на странице свойств командной строки С++ каждого проекта вы добавляете это в поле дополнительных параметров: @"SharedOptions.rsp".

Затем, когда вы отредактируете параметры в текстовом файле, они будут подхвачены всеми проектами. Возможно, что решение для управления свойствами, предоставляемое nobugz, является просто графическим интерфейсом для этого - я не знаю, я больше похож на парня из командной строки.

Я думаю, вы уже что-то делали по этому поводу за последние 2 месяца, но этот ответ больше для гуглов...

person Community    schedule 05.03.2009

В итоге я использовал глобальные переменные, доступные в Visual Studio. Это были такие переменные, как $ProjectName и тому подобное. Многие уже доступны в VS, они также могут быть определены пользователем.

person fooMonster    schedule 10.03.2009