Робота з властивостями проектів

При створенні проекту система привласнює значення різних властивостей. Значення за замовчуванням варіюються в залежності від типу проекту та доступні параметри, виберіть у майстра додатків. Наприклад, проект ATL має властивості, що відносяться до файлів MIDL, але вони відсутні в просте консольний додаток. В області "Загальні" у вікні властивостей відображаються властивості за замовчуванням:

Робота з властивостями проектів

Деякі властивості, такі як назва програми застосовуються для всіх варіантів побудови, незалежно від цільової платформи, або це побудова налагодження або випуску. Однак більшість властивостей, залежать від конфігурації. Це тому, що компілятор повинен знати, які платформи, програма буде запускатися на і які певного компілятора параметри слід використовувати для створення правильного коду. Таким чином при установці властивості важливо звернути увагу на які зміни і платформи, нове значення має застосовуватися до. Слід застосовувати тільки для збірок налагодження Win32 або його також необхідно застосувати до налагодження ARM і налагодження x64? Наприклад оптимізації за умовчанням вибрано Максимальна швидкість (/ O2) в конфігурації випуску, але відключений в конфігурації налагодження.

Робота з властивостями проектів

На наступному малюнку же сторінка властивостей проекту, але конфігурація змінилася випуску. Зверніть увагу, інше значення для властивості оптимізації. Зверніть увагу на те, що активна конфігурація як і раніше налагодження. Можна задати властивості для будь-якої конфігурації він не повинен бути активним.

Робота з властивостями проектів

Сама система проект заснований на MSBuild, яка визначає формати файлів і правила для створення проектів будь-якого типу. MSBuild управляє здебільшого складність побудови для декількох платформ і конфігурацій, але необхідно розуміти трохи про його роботі. Це особливо важливо, якщо ви хочете визначити користувача конфігурації або створення повторно використовуваних наборів властивостей, які можна спільно використовувати і імпортувати в кілька проектів.

Властивості проекту зберігаються безпосередньо у файлі проекту (* .vcxproj) або в інших файлах XML або .props, імпортує файл проекту і вказати значення за замовчуванням. Як показано вище, то ж властивість для такої ж конфігурації можуть призначатися різні значення в різних файлах. При побудові проекту, обробник MSBuild оцінює файл проекту і всі імпортовані файли в добре визначеному порядку (як описано нижче). Як обчислюється кожен файл, все значення властивостей, визначених у цьому файлі скасовують існуючі значення. Всі значення, які не вказані, успадковуються від файлів, які раніше було обчислено. Таким чином при установці властивості за допомогою сторінок властивостей, важливо приділяти увагу, де він встановлений. Якщо задати властивість «X» в PROPS-файл, але властивість має значення «Y» в файлі проекту, проект буде побудований властивість, значення «Y». Якщо ж властивість має значення «Z» в елемент проекту, наприклад CPP-файл, обробник MSBuild буде використовувати значення «Z». Додаткові відомості див. У розділі успадкування властивостей Далі в цій статті.

Конфігурація довільні групи, ім'я властивості. Visual Studio надає конфігурацій налагодження і випуску, і кожен задаються різні властивості, необхідні для побудови налагодження або випуску. Можна використовувати Configuration Manager для визначення користувальницьких конфігурацій - зручний спосіб властивості групи для конкретної версії збірки. Диспетчер властивостей використовується для розширеного роботи з властивостями, але ми представляємо його тут, так як він допомагає візуалізувати конфігурації властивостей. Доступ до його підставі подання | Диспетчер властивостей або подання | Інші вікна | Диспетчер властивостей в залежності від налаштувань. У проекті було вузли для кожної пари конфігурації і платформи. У кожному з цих вузлів є вузлами для сторінок властивостей (файлів PROPS), задати деякі властивості, певні для цієї конфігурації.

Робота з властивостями проектів

Якщо перейдіть до області "Загальні" у вікні властивостей (див. Вище малюнку) і встановити властивість набір символів «Не встановлювати» замість «Використання Юнікоду» і натисніть кнопку ОК. будуть відображатися в диспетчері властивості не Підтримка Unicode властивостей для поточної конфігурації, але він залишиться для інших конфігурацій.

Додаткові відомості про диспетчері властивостей і властивостей см. В розділі Створення повторно використовуваних конфігурацій властивостей Далі в цій статті.

User-файл - це застарілий компонент і рекомендується видалити його, щоб зберегти властивості правильно, згруповані по конфігурації і платформи.

Попередньо макроси

глобальні макроси
Застосовуються до всіх елементів в конфігурації проекту. Синтаксис: $ (name). Приклад глобального макросу - властивість $ (VCInstallDir). яке зберігає кореневої каталог установки Visual Studio. Глобальний макрос відповідає елементу PropertyGroup в MSBuild.

макроси елементів
Синтаксис:% (name). У разі файлу макрос елемента застосовується тільки до цього файлу - для прикладу можна використовувати% (AdditionalIncludeDirectories). щоб визначити каталоги, які застосовуються тільки до конкретного файлу. Цей тип макроса елемента відповідає метаданих ItemGroup в MSBuild. При використанні в контексті конфігурації проекту макрос елемента застосовується до всіх файлів певного типу. Наприклад, властивість конфігурації C / C ++ Визначення препроцесора може приймати макрос елемента% (PreprocessorDefinitions). який застосовується до всіх CPP-файлів в проекті. Цей тип макроса елемента відповідає метаданих ItemDefinitionGroup в MSBuild. Для отримання додаткової інформації див. Item Definitions.

призначені для користувача макроси

Для створення власних макроси для використання в якості змінних в збірках проекту. Наприклад, можна створити окремий макрос, що надає значення призначеному для користувача кроці збірки або призначеному для користувача засобу збірки. Призначений для користувача макрос - це пара "ім'я-значення". Для доступу до цього значення в файлі проекту використовується нотація $ (name).

Призначений для користувача макрос зберігається на сторінці властивостей. Якщо проект не містить сторінку властивостей, можна створити її, слідуючи інструкціям в розділі Створення повторно використовуваних конфігурацій властивостей.

Створення призначеного для користувача макросу

У вікні Диспетчер властивостей (в рядку меню виберіть Вид. Диспетчер властивостей) відкрийте контекстне меню для сторінки властивостей (її ім'я має розширення USER), а потім виберіть пункт "Властивості". Відкриється діалогове вікно Сторінки властивостей для даної сторінки властивостей.

У лівій області діалогового вікна виберіть Користувальницькі макроси. На правій панелі натисніть кнопку Додати макрос. щоб відкрити діалогове вікно Додавання користувальницького макросу.

У діалоговому вікні задайте ім'я і значення для макросу. Крім того, можна встановити прапорець Завдання даного макросу в якості змінної середовища в середовищі збірки.

Робота з властивостями проектів

Робота з властивостями проектів

User-файли і чому вони проблеми

Хоча USER-файли як і раніше встановлюються середовищем Visual Studio і беруть участь у спадкуванні властивостей, за замовчуванням вони є порожніми. Рекомендується видалити посилання на ці файли в диспетчері властивостей. щоб гарантувати роботу проектів незалежно від параметрів конкретного користувача або конкретного комп'ютера. Це важливо для забезпечення правильної поведінки в середовищі управління вихідним кодом (SCC).

Щоб відкрити диспетчер властивостей. в рядку меню послідовно виберіть Вид. Інші вікна та Диспетчер властивостей.

Якщо є загальний, часто використовуваний набір властивостей, які необхідно застосувати до декількох проектах, то за допомогою диспетчера властивостей їх можна записати в повторно використовуваний файл сторінки властивостей. який за угодою має розширення імені файлу PROPS. Цю сторінку можна застосовувати до нових проектів, щоб виключити необхідність в завданні властивостей з нуля. Щоб відкрити Диспетчер властивостей. в рядку меню виберіть Вид. Диспетчер властивостей.

Робота з властивостями проектів

З кожного вузла конфігурації відобразяться вузли для кожної сторінки властивостей, який застосовується до цієї конфігурації. Система додає сторінки властивостей, заданих значень на підставі параметрів, обраних в майстра додатків при створенні проекту. Клацніть правою кнопкою миші будь-який вузол і виберіть властивості, щоб побачити властивості, застосовуються до цього вузла. На сторінках властивостей автоматично імпортуються в «головний» властивостей проекту (ms.cpp.props) і оцінюються в порядку їх слідування в диспетчері властивостей. Можна переміщати їх, щоб змінити порядок обчислення. Сторінки властивостей, які обчислюються пізніше будуть перевизначені значення в раніше обчислюється листів.

Якщо клацнути команду Додати нову сторінку властивостей проекту. а потім вибрати, наприклад, сторінку властивостей MyProps.props, відкриється діалогове вікно сторінки властивостей. Зверніть увагу, що воно відноситься до сторінці властивостей MyProps; всі зміни, що вносяться записуються на цю сторінку, а не в файл проекту (з розширенням VCXPROJ).

Властивості на сторінці властивостей перевизначаються, якщо той же властивість задано безпосередньо в VCXPROJ-файлі.

Сторінку властивостей можна імпортувати будь-яку кількість разів. Кілька проектів в рішенні можуть успадковувати параметри від однієї сторінки властивостей, і проект може мати кілька сторінок. Сторінка властивостей сама може успадковувати параметри від іншої сторінки властивостей.

Також можна створити одну сторінку властивості для декількох конфігурацій. Для цього створіть сторінку властивостей для кожної конфігурації, відкрийте контекстне меню для однієї з них, виберіть Додати існуючу сторінку властивостей і додайте інші сторінки. Однак при використанні однієї спільної сторінки властивостей слід мати на увазі, що, встановлюючи властивість, ви задаєте його для будь-яких змін, до яких застосовується відповідна сторінка, і інтегроване середовище розробки не вказує, які проекти або інші сторінки властивостей успадковують від даної сторінки властивостей.

У великих рішеннях, які будуть містити багато проектів, має сенс створити сторінку властивостей на рівні рішення. При додаванні проекту до вирішення за допомогою менеджера властивостей для додавання цієї сторінки властивостей в проект. При необхідності можна додати нову сторінку властивостей на рівні проекту для завдання значень, що відносяться до даного проекту.

За замовчуванням PROPS-файл не бере участі в системі управління версіями, оскільки він не створюється як елемент проекту. Якщо потрібно включити цей файл в систему управління версіями, можна вручну додати його як елемент рішення.

Створення сторінки властивостей

У рядку меню виберіть Вид. Диспетчер властивостей. Відкриється діалогове вікно Диспетчер властивостей.

Щоб визначити область сторінки властивостей, виберіть елемент, до якого вона застосовується. Це може бути певна конфігурація або інша сторінка властивостей. Відкрийте контекстне меню цього елемента і виберіть команду Додати нову сторінку властивостей проекту. Вкажіть ім'я та розташування.

У диспетчері властивостей відкрийте нову сторінку властивостей, а потім задайте властивості, які мають бути включені.

Властивості проекту мають багаторівневу структуру. Кожен рівень успадковує значення попереднього рівня, але успадковане значення може бути перевизначити шляхом явного завдання властивості. Нижче представлено базове дерево успадкування.

Параметри за замовчуванням з набору інструментів CPP системи MSBuild (.. \ Program Files \ MSBuild \ Microsoft.Cpp \ v4.0 \ Microsoft.Cpp.Default.props, імпортований VCXPROJ-файлом).

VCXPROJ-файл (може перевизначати параметри за замовчуванням і параметри сторінки властивостей).

Властивість, виділене напівжирним шрифтом (bold) на сторінці властивостей, визначається в поточному контексті. Властивість в звичайному шрифті успадковується.

Розгорнуті файли проекту можуть бути великими і важкими для розуміння, якщо користувач не знайомий з MSBuild. Нижче представлена ​​основна структура файлу проекту.

Основні властивості проекту, які не представлені в інтегрованому середовищі розробки.

Імпорт файлу Microsoft.cpp.default.props, який визначає деякі базові, незалежні від набору інструментів властивості.

Глобальні властивості конфігурації (надаються як властивості за замовчуванням PlatformToolset і Project на сторінці Конфігурація> Загальні). Ці властивості визначають, які сторінки властивостей наборів інструментів і вбудовані сторінки властивостей будуть імпортуватися з файлу Microsoft.cpp.props на наступному кроці.

Імпорт файлу Microsoft.cpp.props, який задає більшість значень проекту за замовчуванням.

Імпорт всіх сторінок властивостей, включаючи USER-файли. Ці сторінки властивостей можуть мати найвищий пріоритет все значення, крім властивостей за замовчуванням PlatformToolset і Project.

Інша частина властивостей конфігурації проекту. Ці значення можуть перевизначати значення, задані на сторінках властивостей.

Елементи (файли) разом з пов'язаними з ними метаданими. Ці елементи завжди використовуються останніми в правилах обчислення MSBuild, навіть якщо з'являються до інших властивостей і імпорту.

Для отримання додаткової інформації див. MSBuild Properties.

Схожі статті