当一个solution中的project越来越多以后,管理编译选项,将成为一件很麻烦的事,单独对每个project进行设置不仅繁琐,而且容易出错。但实际上,visual studio已经为我们提过了统一的管理界面—Property Manager。
在visual studio中,每个c++ project的general属性页中,都有一项"Inherited Project Property Sheets",我们可以在这里指定一个或多个Property Sheet(不要和GUI开发中的Property Sheet搞混了,完全两个概念)供项目继承。在被继承的属性表(父属性表)中,我们设置好默认选项,然后把project中对应的选项设置为"inherit from parent or project defaults”就可以使用父属性表中的设置了。这样,在solution层面上准备一个Property Sheet,再让其下的所有project继承,即可实现编译选项的统一管理。
在visual studio的view菜单中选择property manager,还可以更清楚的看到每个project继承了哪些property sheet,并且有更多的编辑功能(如创建新property sheet、清除project已经设置了的选项等)。另外,property sheet还支持多级继承,而实践上一般也是每个solution一个根Property Sheet,然后为每个Configruation(Debug版、Release版等)分别派生出一个,各个project的不同Configruation继承对应的Property Sheet。
最后要注意的就是:property sheet的保存文件(.vsprops),也是应该加入配置管理系统的。