【问题标题】:Apply a property change to all DLL projects in a solution将属性更改应用于解决方案中的所有 DLL 项目
【发布时间】:2014-08-07 08:01:11
【问题描述】:

我有一个包含大约 150 个项目的解决方案,包括静态库、动态库和可执行文件,以及一些基于 Makefile 的项目,所以我有一个 this guy's problem 的扩展版本。

我需要对所有 EXE 和 DLL 项目的链接器页面应用更改(添加 /FIXED:NO 以使 Rational Purify 受益)。有没有办法我可以轻松地做到这一点,例如在宏的帮助下?

【问题讨论】:

    标签: c++ visual-studio visual-studio-2008


    【解决方案1】:

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

    【讨论】:

      【解决方案2】:

      你可以制作一个通用项目属性,然后你可以修改相关项目继承这个通用属性,这样下次你只需要修改通用项目属性时,继承它的项目会自动同步新的设置。 Property Sheets (C++)

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

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

      【讨论】:

        【解决方案3】:

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

        例如:

        • All.props -> 所有项目通用的设置
        • Debug.props -> 仅适用于调试版本的设置
        • Release.props -> 仅发布版本通用的设置
        • Static.props -> 仅对静态库项目通用的设置
        • Dynamic.props -> 仅对动态库项目通用的设置
        • Executable.props -> 仅适用于可执行项目的设置

        这需要预先进行少量工作,以便将属性表添加到您现有的项目中。然后,每当您创建一个新项目时,您所要做的就是附上相关的属性表。维护变得容易 - 更改设置并将更改应用于所有可执行项目,您只需更新属性表Executable.props

        注意:属性表根据其在层次结构中的位置进行排序,因此位于较高属性表中的设置将覆盖列表较低表中的相同设置。这是一个很大的优势 - 您可以将默认设置放在All.props(来自我上面的示例),然后覆盖更具体的属性表中的设置。如果您有一个具有自己独特设置的一次性项目,那么直接修改项目设置将覆盖所有属性表。

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 2020-07-24
          • 2021-05-06
          • 1970-01-01
          • 2019-03-02
          • 2017-04-22
          • 2011-02-26
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多