当一个solution中的项目越来越多以后,管理编译选项,将成为一件很麻烦的事,单独对每个项目进行设置不仅繁琐,而且容易出错。但实际上,Visual Studio已经为我们提过了统一的管理界面----Property Manager。

在visual studio中,每个c++项目的general属性页中,都有一项Inherited Project Property Sheets,我们可以在这里指定一个或多个Property Sheet(不要和GUI开发中的Property Sheet搞混了,完全两个概念)供项目继承。在被继承的属性表(父属性表)中,我们设置好默认选项,然后把项目中对应的选项设置为inherit from parent or project defaults就可以使用父属性表中的设置了。这样,在solution层面上准备一个Property Sheet,再让其下的所有项目继承,即可实现编译选项的统一管理。

在visual studio的view菜单中选择property manager,还可以更清楚的看到每个项目继承了哪些property sheet,并且有更多的编辑功能(如创建新property sheet、清除项目已经设置了的选项等)。另外,property sheet还支持多级继承,而实践上一般也是每个solution一个根Property Sheet,然后为每个Configruation(Debug版、Release版等)分别派生出一个,各个项目的不同Configruation继承对应的Property Sheet

最后要注意的就是property sheet对应的文件(·.vsprops·),也应该加入配置管理系统。