怎样使用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

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

  1. Qt Creator 源码学习笔记03,大型项目如何管理工程

    阅读本文大概需要 6 分钟 一个项目随着功能开发越来越多,项目必然越来越大,工程管理成本也越来越高,后期维护成本更高.如何更好的组织管理工程,是非常重要的 今天我们来学习下 Qt Creator 是如 ...

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

    from:http://www.cnblogs.com/perryxiong/p/3759818.html   最近我在项目中遇到一些工程之间的管理问题. 模型: 其中 库A 是一个公共的基础静态库, ...

  3. OpenCV使用Cmake来管理工程

    写篇入门级别的文章,对于配置OpenCV很多人不知道有这种方法,其实这种方法在OpenCV编译过程中已经使用到的了,如果有手动编译OpenCV经验的同学可以很快的学会这种工程管理方法 方法优点,只要有 ...

  4. Notepad++ 管理工程--转载

    http://blog.csdn.net/cashey1991/article/details/7001385 @1.首先从下面这个菜单打开工程panel @2.在工程panel的“Workspace ...

  5. RTT工程管理

    一.RTT工程管理 RTT采用SCons管理工程. 本次安装版本:Python-2.7.3.1.exe,python-2.7.11.msi,scons-2.3.1-setup.exe 安装完成后,需要 ...

  6. 将你的静态工程用Grunt管理

    最近写了一个静态页面,写完之后都会上传到静态服务器上.但是我遇到一个问题,就是每次修改文件后就要重新找一些代码压缩网站去压缩静态文件.有没有什么办法能够自动化的处理呢?答案当然是肯定的. 我们可以借用 ...

  7. 从零自学Hadoop(09):使用Maven构建Hadoop工程

    阅读目录 序 Maven 安装 构建 示例下载 系列索引 本文版权归mephisto和博客园共有,欢迎转载,但须保留此段声明,并给出原文链接,谢谢合作. 文章是哥(mephisto)写的,Source ...

  8. 【转】Maven3把命令行创建的web工程转成Eclipse和IntelliJ Idea的工程

    参考链接:http://blog.sina.com.cn/s/blog_4f925fc30102ed5b.html 大前提:在执行mvn eclipse:eclipse命令之前一定要先存在一个含有po ...

  9. 【转】前端工程筹建NodeJs+gulp+bower

    转自:http://www.myexception.cn/javascript/1781968.html npm nodejs 安装过程中会自动安装npm,nodejs安装程序会在环境变量中添加两个变 ...

随机推荐

  1. 微信小程序基础之在微信上显示和体验小程序?

    随着小程序正式上线,用户现在可以通过二维码.搜索等方式体验到开发者们开发的小程序了. 用户只要将微信更新至最新版本,体验过小程序后,便可在发现页面看到小程序TAB,但微信并不会通过这个地方向用户推荐小 ...

  2. 搜索引擎solr和elasticsearch

    刚开始接触搜索引擎,网上收集了一些资料,在这里整理了一下分享给大家. 一.关于搜索引擎 搜索引擎(Search Engine)是指根据一定的策略.运用特定的计算机程序从互联网上搜集信息,在对信息进行组 ...

  3. Redis源码剖析--源码结构解析

    请持续关注我的个人博客:https://zcheng.ren 找工作那会儿,看了黄建宏老师的<Redis设计与实现>,对redis的部分实现有了一个简明的认识.在面试过程中,redis确实 ...

  4. ROS机器人程序设计(原书第2版)补充资料 (壹) 第一章 ROS系统入门

    ROS机器人程序设计(原书第2版)补充资料 (壹) 第一章 ROS系统入门 书中,大部分出现hydro的地方,直接替换为indigo或jade或kinetic,即可在对应版本中使用. 第一章主要包括R ...

  5. 使用Android Studio向GitHub提交代码

    使用Android Studio向GitHub提交代码 在GitHub上创建一个仓库 填写仓库名称.描述.类型(公有.私有)等信息,点击创建 到此,成功创建了我们的仓库,并且初始化创建了README. ...

  6. 15 Actionbar的显示和隐藏

    ActionBar 显示隐藏方法: 在布局文件中设置 theme主题 <?xml version="1.0" encoding="utf-8"?> ...

  7. Centos7安装RocketMQ及配置测试

    环境 Centos7 RocketMQ 3.2.6 安装位置 /usr/local/alibaba-rockermq 外网ip 182.254.145.66 内网ip 10.105.23.114 安装 ...

  8. Android广播接收器Broadcast Receiver-android学习之旅(十二)

    首先继承BroadcastReceiver类,并在manifest中注册 public class MyReceiver extends BroadcastReceiver { public MyRe ...

  9. DVB-C系统中QAM调制与解调仿真

    本文简单记录一下自己学习<通信原理>的时候调试的一个仿真DVB-C(Cable,数字有线电视)系统中QAM调制和解调的程序.自己一直是研究"信源"方面的东西,所以对&q ...

  10. 最简单的基于FFmpeg的libswscale的示例(YUV转RGB)

    ===================================================== 最简单的基于FFmpeg的libswscale的示例系列文章列表: 最简单的基于FFmpeg ...