怎样使用projectproperty sheet(.vsprops)来管理工程

IDE:VS2005

前言

Project Property Sheet的意思是项目属性表,在大型项目中基本上都会使用。一般来说,在一个大型项目中,对于每个工程来说,很多属性设置是完全相同的,譬如公共头文件路径,公共通用函数/库,公共静态链接库,相同的编译优化选项等等,很多。而工程数目可能上则十数个,多则上百个,一个个的去配置工程属性,工作量大不说,还很容易配错,而使用项目属性表则可以明显减少工程的错误设置,明显减少工程的重复设置,显著降低程序员的工作量(虽然很多地方是项目经理统一配置的),本文主要讲述项目属性表的使用方法。

注:本文的截图以集成开发环境VS2005为例。

方法流程

通过菜单->View->Property Manager打开属性管理器。

在任一工程上面点击鼠标右键,选择“Add New Project Property Sheet…”。

在弹出对话框里面输入属性文件名和存放路径,一般为了统一管理,建议放一个统一的公共目录(因为属性文件可能有多个),然后点击“Add”按钮。

此时左边的侧边栏会生成相应的属性文件选项(按上图的输入会生成DetoursResearch),相应目录也会生成项目属性文件DetoursResearch.vsprops。

双击侧边栏上面刚刚新增加的属性文件项,即可进行编辑操作。编辑操作比较简单,和配置一个普通工程差不多,唯一需要注意的就是,项目属性表里面的配置应该是所有工程(或者说大部分工程)都相同的部分,否则如果只有几个工程可以使用,就失去意义了。

一般来说,Debug版本和Release版本的配置不一样,EXE、DLL和StaticLib的配置也可能不一样,而一个大型项目里面,这些元素可能是同时存在,因此可能需要的属性表就多达上十个。管理上面就需要严格控制。

再看在其它的工程里面怎么使用,其实使用很简单,把项目属性表的文件路径设置给相关工程的“继承项目属性表”(inherited project property sheets)即可,马上就可以使用了。是不是感觉很赞!

注意事项

1、项目属性表配置好之后记得保存,否则可能丢失刚刚的配置。

2、另外一个使用属性表的方式是在配置属性页面选择“Add Existing Project Property Sheet…”,点选一个项目属性文件,效果和上面介绍的一样。

3、如果有多个项目属性表,相互之间会冲突吗?不会,按照优先级来,优先级在项目属性配置页面里面体现,越上面的项目属性表,优先级越高。可以通过在属性表上面点鼠标右键,通过菜单命令“move up”,和“move down”来调整。下图有三个属性表属于系统属性表,是不能删除,不能编辑,也不能调整优先级的。

参考文档

[1] How to: Add New Property Sheets toC++ Projects https://msdn.microsoft.com/en-us/library/5k4a0033(v=vs.80).aspx

[2] Inherited Properties and PropertySheets http://blogs.msdn.com/b/vsproject/archive/2009/06/23/inherited-properties-and-property-sheets.aspx

时间: 2024-10-08 09:29:51

怎样使用projectproperty sheet(.vsprops)来管理工程的相关文章

用workspace管理工程,并解决多静态库依赖

最近我在项目中遇到一些工程之间的管理问题. 模型: 其中 库A 是一个公共的基础静态库, M_A依赖A, N_A依赖A, 而项目工程Test依赖A,M_A,N_A这三个库. 用workspace管理项目和依赖的库 Test,A库,M_A库,N_A库分别为4个Project,并被一个workspace进行管理,看截图: 按照常规,我们会在M_A, N_A静态库项目的Build Phases->Link Binary With Libraries中添加A.framework.在Test项目的相同位置

OpenCV使用Cmake来管理工程

写篇入门级别的文章,对于配置OpenCV很多人不知道有这种方法,其实这种方法在OpenCV编译过程中已经使用到的了,如果有手动编译OpenCV经验的同学可以很快的学会这种工程管理方法 方法优点,只要有源代码,跨操作系统什么的都是分分钟的事,废话不多说,下面开始(本文以图为主) 第一步:你要有个Cmake,这个倒网上下一个就行,Linux和Mac下有命令行版本也有界面版本的,Windows下主要使用界面版本的 第二步:需要一个cMakeLists.txt 的脚本文件: ######## A sim

Eclipse中使用自己的makefile管理工程

我用的环境: (1)系统: Ubuntu 11.04 (2)Eclipse + CDT 1. 在建立工程的时候选择makefile工程. 2.将makefile文件和你写好的工程文件(源文件和头文件)导入到刚刚创建的工程中. 3. 如果你写的 makefile中的第一个目标是all的话,就可以直接编译工程了,build all 就可以了. build all相当于在终端里执行make all 的效果一个,看一下我的工程的运行效果. 运行工程run,相当在终端里的   ./all 如果不是的all

RTT工程管理

一.RTT工程管理 RTT采用SCons管理工程. 本次安装版本:Python-2.7.3.1.exe,python-2.7.11.msi,scons-2.3.1-setup.exe 安装完成后,需要在环境变量中添加PATH(C:\Python27\Scripts). 可用cmd下scons验证是否安装正确. scons通过sconscript和sconstruct文件来组织源码结构,通常一个项目只有一个说construct,但是有多个sconscript. 1.RTT的配置是通过rtconfi

3.Makefile工程管理

3.Makefile工程管理 一.体验 在前面的笔记里可以看到,要编译一个简单的工程需要的编译步骤是很多的.前面还是只有一个汇编文件,在一个工程里,会有很多文件的,如果像前面的那种编译方式是很不可靠的.这就需要Makefile工程管理. 例如前面的那个led.S,要编译成led.bin的步骤:图1-1: arm-linux-gcc -g -c led.S arm-linux-ld -Tled.lds -o led.elf led.o arm-linux-objcopy -O binary led

indows下使用TortoiseGit管理github工程

以前一直用TorToiseHg管理工程,没用过TortoiseGit,这两个分别对分布式管理工具Hg,Git做了图形化界面,使之更易用.不用记忆大量命令.除了Hg和Git之间的差别之外,TorToiseHg和TorGoiseGit之间的区别在于,TorToiseHg自己已经集成了版本管理工具Hg,而TorToiseGit依赖于MsysGit. 1.先安装MsysGit,这样在安装ToiToiseGit时,会自动检测设置Git所在目录如下: 2. 配置TortoiseGit 下载:http://c

工程基建行业卓越的目标与绩效管理高级研讨课程大纲 (两天实战版)

工程基建行业卓越的目标与绩效管理高级研讨课程大纲 (两天实战版) (如欲公开以下内容,或者需对大纲作专业化调整,请与本人联系确认) [课程关键词]绩效管理循环.工作计划.MBO\KPI\BSC.企业文化 [课程时长]2天(估计每天6.5小时) [课程对象]企业领导者,部门经理.其他各级经理和主管 [课程形式] 演讲,问题讨论和个案分析. 问题讨论和个案分析将与授课紧密结合. 授课现场需准备投影仪,电源拖板,学员用胶贴纸,铅笔和练习纸,如再配白板和白板水笔更好. 采用了电影剪辑和情境片断等多媒体培

将你的静态工程用Grunt管理

最近写了一个静态页面,写完之后都会上传到静态服务器上.但是我遇到一个问题,就是每次修改文件后就要重新找一些代码压缩网站去压缩静态文件.有没有什么办法能够自动化的处理呢?答案当然是肯定的. 我们可以借用Grunt来帮助我们完成.只需要将现有的工程配置成grunt工程即可.那么我们一起来看看吧: 第一步:在本地安装grunt grunt是基于Node.js所以要先安装node   http://nodejs.org/download/ 安装 grunt npm install -g grunt-cl

iOS工程 与 资源文件 和 Bundle

在简单的app中,可能只会用到工程,但是项目越大,越复杂,就会需要拆分项目,将各个功能拆散到各个工程中. 可以使用worksapce来管理工程集合. 但是资源文件却不好管理,因为xcode默认只能添加自己工程内,或者子工程的资源文件到target中. 如果是平级的工程,怎么添加呢?可以使用bundle bundle虽然是os x中的资源类型,但是是兼容iOS的 我们可以先创建一个os x的bundle,然后修改其编译类型为iOS的 调整base sdk即可 然后添加资源文件(png,xib,st