Ответ 1
Visual Studio позволяет использовать Property Sheets (нажмите здесь). В вашем проекте могут быть различные конфигурации, которые могут иметь свойства из любых/всех ваших листов свойств, а также локально определенные свойства.
Например, в одном недавнем проекте я создал следующие листы свойств: 1) общий, 2) 32-разрядный, 3) 64-разрядный, 4) отладка, 5) Release.
Данная конфигурация (например, 32-разрядная сборка для выпуска на английском языке) будет иметь комбинацию из следующих: 1 + 2 + 5 + специфичное для свойства "английское" определение.
Макрос, который вы видите, используется для "использовать свойства из листа свойств плюс дополнительные свойства" или "полностью переопределить свойства и игнорировать листы свойств".
Это своего рода трюк, чтобы правильно настроить их в первый раз, но это действительно упрощает сохранение нескольких параметров проекта.