An aggregating property collects all the values defined for it in the project hierarchy. For example, when a C file is compiled, the Preprocessor Definitions property will take all the values defined at the file, project, and solution levels. Note that the Properties window will not show the inherited values of an aggregating property.
solution — Preprocessor Definitions = SolutionDef project1 — Preprocessor Definitions = file1 — Preprocessor Definitions = file2 — Preprocessor Definitions = File1Def project2 — Preprocessor Definitions = ProjectDef file1 — Preprocessor Definitions = file2 — Preprocessor Definitions = File2Def
In the above example, the files will be compiled with these preprocessor definitions:
project1/file1 | SolutionDef |
project1/file2 | SolutionDef, File1Def |
project2/file1 | SolutionDef, ProjectDef |
project2/file2 | SolutionDef, ProjectDef, File2Def |