将属性更改应用于解决方案中的所有DLL项目

Apply a property change to all DLL projects in a solution

本文关键字:DLL 项目 解决方案 属性 应用于      更新时间:2023-10-16

我有一个包含大约150个项目的解决方案,包括静态库,动态库和可执行文件,以及一些基于Makefile的项目,所以我有一个扩展版本的这个家伙的问题。

我需要对所有EXE和DLL项目的链接页应用变更(为了Rational Purify的利益添加/FIXED:NO)。是否有一种方法可以很容易地做到这一点,例如在宏的帮助下?

我会直接修改项目文件——毕竟它们是XML,您可以很容易地发现需要对它们进行哪些更改来添加标志。然后你可以编写一个例如Python脚本来修改所有的项目文件。

你可以创建一个公共的项目属性,然后你可以修改相关的项目来继承这个公共属性,这样当下次你只需要修改公共的项目属性,那么项目继承它会自动同步新的设置。属性表(c++)

使用继承的项目属性表属性应用属性表中定义的项目设置:

  1. 使用继承的项目属性表属性
  2. 应用属性表中定义的项目设置
  3. 在Visual Studio IDE中打开你的项目。
  4. 在解决方案资源管理器中,右键单击项目的节点或将继承项目配置的属性表。
  5. 在快捷菜单中单击"属性"。将出现项目的属性页。使用Configuration控件指定应用项目设置的项目配置。
  6. 在常规属性页的Inherited Project Property Sheets字段中,输入包含您想要继承的设置的属性表的路径。
  7. 单击Apply。

这正是属性表设计的目的。创建属性表的层次结构,其中包含某些类型项目的常见设置,然后使用属性管理器(视图菜单->属性管理器)将它们附加到相关项目。

例如:

  • 。props ->所有项目的通用设置
  • 调试。props ->设置仅用于调试构建
  • 释放。props ->设置仅用于发布版本
  • 静态的。props ->仅对静态库项目通用的设置
  • 动态。props ->仅对动态库项目通用的设置
  • 执行。props ->仅对可执行项目通用的设置

这将需要少量的前期工作,将属性表添加到现有的项目中。然后,无论何时创建新项目,您所要做的就是附加相关属性表。维护变得容易-更改设置并将更改应用于所有可执行项目,您只需更新属性表Executable.props

注意:属性表是根据它们在层次结构中的位置排序的,所以属性表中较高的设置将覆盖列表中较低的表中的相同设置。这是一个很大的优势——你可以把你的默认设置放在All.props中(从我上面的例子中),然后在更具体的属性表中覆盖设置。如果您有一个具有自己唯一设置的一次性项目,那么直接修改项目设置将覆盖所有属性表。