Насторйки проекта в MS Visual Studio 2010

2010-11-22 papirosnik Microsoft Visual Studio

Microsoft Visual Studio 2010 наряду со многими полезными новшествами имеет и такие, которые многих раздражают и ставят в тупик тех, кто не желает читать то, что для них пишут опричники Билла. Основным раздражающим моментом являются изменения в настройках студии, касающихся путей для Include файлов и путей на библиотеки (lib path). Вплоть до этой версии в настройках студии (а не самого проекта) можно было прописать пути, которые наследовались всеми проектами. Т.е. например написать единожды пути на boost и больше не заботится в каждом проекте о них.
  В Сиэтле посчитали, что это непозволительная роскошь: просматривать при поиске нужных файлов в каждом проекте папки, заведомо ему не принадлежащие. И мотивируя заботой о скорости сборки проектов отказались от такой удобной фишки. Теперь якобы надо прописывать все пути для каждого проекта по-отдельности. Но так считают те, кто не желает читать или воспринимать прочитанную информацию. На самом деле всё не так страшно.

Замечу, что я солидарен в этом вопросе с Майкрософт. У меня несколько проектов, которые юзают разные библиотеки (DirectX SDK, OGRE, Boost), каждая из которых имеет сотни Include файлов. Скорость компиляции студией от Билла всегда была слабым местом этого продукта. И даже предкомпилированные заголовки (Precompiled header) не всегда спасали ситуацию. Нажав Ctrl+Alt+F7 можно было спокойно идти курить (и не одну сигарету). Виной тому расточительство в вопросе включаемых файлов (их количества, размера, хитросплетений, т.е повторных включений).
  Поэтому, повторюсь, эти шаги по ускорению компиляции я считаю оправданными. Зачем компилятор будет искать какой-либо файл, например в DirectX SDKInclude, если я пишу проект под OpenGL и этого файла там ну никак не может быть. Единственное, что лично я бы включал по умолчанию в каждый проект — это boost. И механизм для этого в MS VS 2010 есть.

Справедливости ради следут отметить, что скорость сборки проектов не так уж чтобы возросла. По моему субьективному мнению, она уменьшилась. Но причина тут кроется в другом. И если бы оставить ещё подход с просмотром всех путей по умолчанию, то видимо процесс компиляции надо было бы запускать на ночь, а утром, проснувшись, ещё немного подождать результата 🙂

Итак, что же Билли предлагает нам взамен? Да почти тот же механизм, только теперь он носит названия Страница свойств (Property sheet). Можно создать страницу свойств для какого-нибудь проекта и потом просто её подключать в другие проекты. Это даст примерно такой же результат, как и применение общих настроек, но предоставит Вам более гибкий выбор, что включать в проект, а что можно опустить. Да, к проекту можно подключать сколько угодно проперти шитов.
Например, я создал property sheet для DirectX (DX.props), для OGRE (ogre.props), где прописал все необходимые пути к файлам и зависимостям, и просто добавляю эти страницы к проекту.

Создавать и использовать страницы свойств чрезвычайно легко. Выбираем в студии пункт меню View->Property manager. В открывшемся окне менеджера щёлкаем ПКМ на нужном проекте и выбираем из выпадающего меню Add New Project Property Sheet. Обзываем подобающим образом создаваемый файл и жмём Add.  Раскроется дерево конфигураций нашего проекта, в каждой из которых (например Debug или Release) мы видим наш файл. Щелкаем ПКМ по нему, выбираем Properties и наблюдаем привычную нам картину с настройками проекта. Устанавливаем нужные нам свойства проекта (в данном случае пути к Include файлам и либам: VC++ Directories) и всё — эти свойства будут автоматически прменяться к любому проекту, к которому подключена эта страница.
Для подключения уже существующей страницы к проекту надо просто выбрать в выпадающем меню менеджера свойств (Property Manager) пункт Add Existing Property Sheet.

PS:
 Первое. Можно вообще не создавать страницы свойств в менеджере свойств (View->Property manager). Открыв его, Вы увидите несколько строчек, наподобие этих:

  • Microsoft.Cpp.Win32.User
  • Application
  • Unicode Support
  • Core Windows Liberary

Щёлкнув по Microsoft.Cpp.Win32.User вы опять получите стандартное окошко настроек проекта, только теперь оно будет показывать настройки проекта по умолчанию. Именно здесь студия открывает доступ к той информации, которая понимается под Inherit from parent or project defaults

И второе. Для того, чтобы задать одинаковые свойста для всех проектов, можно выделить их мышкой или клавиатурой с зажатым левым шифтом в Solution Explorer (или Property manager)  и затем, по щелчку ПКМ откроется окно свойств для всех выделенных проектов. Зачастую почему-то об этой элементаной возможности многие забывают.

Enjoy.

Microsoft Visual Studio, Properties, Property sheet,


Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *

Powered by WordPress. Designed by elogi.