visual-studio - Visual Studio 2012中来自外部项目的配置

标签 visual-studio visual-c++ visual-studio-2012 ide propertysheet

我在使用Visual Studio 2012时遇到问题,并且希望对此有解决方案。我的解决方案中有2个项目:1个项目是“.exe”项目,另一个是“.lib”项目。我已将lib项目添加为exe项目中的引用,并且确保已计划将其首先编译。 lib项目有很多其他包含目录,还有很多其他依赖项和链接库。 lib项目编译正常。但是,exe应用程序不会继承任何其他包含目录,其他库目录或依赖项。我可以通过将配置复制到exe项目来解决此问题,但这意味着如果我更新了lib依赖项,那么我需要在每个使用该库的项目中对其进行更新(我尝试将此库用于多个项目)。这似乎是应该解决的问题,但我似乎找不到。有没有人想办法让项目继承引用项目的配置,还是没有办法解决?谢谢。

最佳答案

没错,项目不会继承其引用的其他项目的属性。要解决您的问题,您需要一个属性表。属性表是与项目分开的属性集合(就像您在项目属性中设置的一样)。您可以将一个属性表应用于许多项目。

在您的情况下,“附加库依赖项”和“附加包含目录”将放置在属性表中。该属性表将同时应用于您的.exe项目和.lib项目。进行更改时,将它们添加到属性表,并且两个项目都将看到更改。

让我们逐步完成设置属性表以完成所需的操作。

  • 使用.exe.lib项目加载解决方案文件。假设您的库名是PowerMath.lib,而您的主要可执行文件是SuperCalc.exe
  • 在Visual Studio中找到解决方案资源管理器窗口。这是列出所有项目以及这些项目中文件的子窗口。 (如果没有,请单击“查看”菜单,然后选择“解决方案资源管理器”选项以创建一个。)
  • 首先,让我们从现在设置的项目属性中删除设置。转到PowerMath.lib项目的项目属性(在解决方案资源管理器中右键单击该项目,然后从上下文菜单中选择“属性”)。找到您进行的“其他库依赖项”和“其他包含目录”设置,然后将其删除。 (仅删除您所做的更改,而不删除以前所做的任何操作。)(此外,将您的内容记下来或将其复制到某个位置-它将在步骤10中返回。)完成PowerMath.lib项目后,请使用SuperCalc.exe项目。将所有内容都撕掉,以免干扰我们将要采用的新方法。确保对项目的所有配置(调试和发行版,Win32和x64)都执行了此操作。
  • 在“解决方案资源管理器”窗口底部,您将看到几个选项卡,包括:“解决方案资源管理器”,“类视图”和“属性管理器”。如果窗口较小,则可以缩写。单击物业管理器
  • 在“属性管理器”中,您将看到两个条目:PowerMathSuperCalc项目名称。右键单击PowerMath.lib项目,然后选择菜单选项添加新属性表
  • 选择一个引用您的库的好名字。我建议PowerMath-settings.props。然后单击添加以创建属性表,并将其自动附加到PowerMath .lib项目。
  • 返回到“属性管理器”窗格,您会看到PowerMath在其下面有两个元素:调试发行。这是库的两种配置。如果通过用鼠标单击它们来“打开它们”,您会看到PowerMath-settings属性表已附加到这两种配置中。
  • PowerMath-settings属性表在其他已经存在的其他属性表的上方列出,这些属性表的名称类似于Core Windows LibrariesUnicode Support。项目的任何配置中的所有设置都来自于组合这些属性表!这就是属性在Visual Studio中的工作方式-将项目的所有属性表按顺序排列在一起,第一个在底部。
  • 双击列表中的PowerMath-settings属性表。这将带您进入熟悉的项目属性界面。此处所做的更改不适用于项目或该项目内的特定配置。相反,您仅在编写属性表PowerMath-settings.props的设置。
  • 现在,您将编写其他库依赖项其他包含目录。转到您希望在其中设置这些内容的对话框。在适当的字段中,单击字段右侧的向下小箭头,然后选择Edit...
  • 在编辑框中,您将看到一个空白,您可以在其中写入新设置。 (您还将看到“继承的值”,它们是来自其他属性表的设置。)添加您的内容,然后单击“确定”。
  • 完成后,将有一个名为PowerMath-settings.props的属性表,其中存储了PowerMath.lib库的所有用户所需的设置。
  • 现在返回“属性管理器”窗口。右键单击SuperCalc项目(这是您的.exe)。选择菜单选项添加现有属性表。找到PowerMath-settings.props并选择它。
  • Boom,现在SuperCalc.exe可以获取您刚刚为PowerMath.lib创建的所有设置。
  • 要进行验证,请从Property Manager切换回Solution Explorer(通过单击子窗口底部的Solution Explorer选项卡)。转到SuperCalc.exe项目的项目属性。转到“其他包含目录”。单击该字段左侧的向下箭头,然后选择Edit...。您将看到您的属性表设置被列为“继承值”。
  • 有时,直到您退出Visual Studio,重新启动并重新加载解决方案后,才会应用全新属性表的设置。当询问您是否要保存项目更改和新的属性表时,请记住单击!完成所有设置后,您无需再次执行此操作。

  • 现在,只要您有一个使用PowerMath.lib的新项目,只需转到属性管理器并添加现有属性表:PowerMath-settings.props

    请记住,必须通过“属性管理器”对话框而不是使用PowerMath.lib项目属性对属性表中的属性进行所有更改!项目属性是一种“替代”属性表,仅适用于一个特定项目。它位于属性管理器列出的所有属性表的上方。

    关于visual-studio - Visual Studio 2012中来自外部项目的配置,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15152226/

    相关文章:

    JavaScript 运行时错误 : Object doesn't support property or method 'highcharts' in Visual Studio

    c# - 为什么我的控件在代码隐藏中无法访问?

    visual-studio - 我可以在同一台计算机上运行 Visual Studio 2005 和 Visual C# 2008 吗?

    visual-studio - 如何解决构建错误: Unable to copy file.访问路径被拒绝

    c++ - 混合使用不同编译器版本构建的二进制文件

    c++ - MSVC (10.0/11.0) 的内联命名空间仿真

    c++ - 如何在 Linux 下构建 Visual Studio Solution?

    vb.net - Visual Studio 2015不断关闭VB的代码选项的漂亮列表(重新格式化)

    c++ - 在存储/内存中查找特定程序的基地址?

    excel - 从 .NET 将代码写入 VBA IDE