[英]Configurations from External Projects in Visual Studio 2012
我遇到了Visual Studio 2012的问题,我希望有一个解决方案。 我在我的解决方案中有2个项目:1个项目是“.exe”项目,另一个是“.lib”项目。 我已经在lib项目中添加了lib项目作为参考,并且我确保它被安排首先编译。 lib项目有一堆额外的include目录和一堆额外的依赖项和链接库。 lib项目编译得很好。 但是,exe应用程序不会继承任何其他包含目录或其他库目录或依赖项。 我能够通过将配置复制到exe项目来解决这个问题,但这意味着如果我更新了lib依赖项,那么我需要在每个使用该库的项目中更新它(我玩这个库用于多个项目)。 这似乎应该有一个解决方案,但我似乎无法找到它。 有没有人想出让项目继承引用项目的配置的方法,或者没有办法解决这个问题? 谢谢。
你没错,项目不会继承他们引用的其他项目的属性。 要解决您的问题,您需要的是一个属性表 。 属性表是与项目分开的属性集(就像您在“项目属性”中设置的那样)。 您可以将单个属性表应用于许多项目。
在您的情况下,“附加库依赖项”和“其他包含目录”将放入属性表中。 该属性表将应用于.exe
项目和.lib
项目。 进行更改时,您将把它们添加到属性表中,两个项目都将看到更改。
让我们一步一步地设置属性表来做你想做的事情。
.exe
和.lib
项目加载解决方案文件。 假设您的库的名称是PowerMath.lib
而您的主要可执行文件是SuperCalc.exe
。 PowerMath.lib
项目的项目属性(在解决方案资源管理器中右键单击该项目,然后从上下文菜单中选择“属性”)。 找到您所做的“其他库依赖项”和“其他包含目录”设置,然后将其删除。 (只删除你的更改,而不是以前的更改。)(另外,写下你的东西或将其复制到某个地方 - 它将在步骤10中返回。)完成PowerMath.lib
项目后,重复该过程使用SuperCalc.exe
项目。 把它全部撕掉,这样就不会干扰我们要采取的新方法。 确保您已为项目的所有配置(Debug和Release,Win32和x64)执行此操作。 PowerMath
和SuperCalc
项目名称。 右键单击PowerMath.lib
项目,然后选择菜单选项“ 添加新属性表” 。 PowerMath-settings.props
。 然后单击“ 添加”以创建属性表,并自动将其附加到PowerMath
.lib项目。 PowerMath-settings
属性表已附加到这两个配置。 PowerMath-settings
属性表列在一堆已存在的其他属性表上方,这些属性表的名称类似于Core Windows Libraries
和Unicode Support
。 您项目的任何配置中的所有设置都来自组合这些属性表! 这就是Visual Studio中属性的工作方式 - 将所有项目的属性表放在一起,按顺序放在第一个属性表的底部。 PowerMath-settings
属性表。 这将带您进入熟悉的Project Properties界面。 此处所做的更改不适用于项目或该项目内的特定配置。 相反,您只是为属性表PowerMath-settings.props
编写PowerMath-settings.props
。 Edit...
PowerMath-settings.props
的属性表,其中存储了PowerMath.lib
库的所有用户所需的设置。 SuperCalc
项目(这是您的.exe)。 选择菜单选项添加现有属性表 。 找到PowerMath-settings.props
并选择它。 SuperCalc.exe
获取您刚刚为PowerMath.lib
创建的所有设置。 SuperCalc.exe
项目的项目属性。 转到“其他包含目录”。 单击该字段左侧的向下箭头,然后选择Edit...
您将看到属性表设置被列为“继承值”。 现在,只要有一个使用PowerMath.lib
的新项目,只需转到Property Manager并添加现有属性表: PowerMath-settings.props
。
请记住,必须通过“属性管理器”对话框对属性表中的属性进行所有更改, 而不是使用PowerMath.lib
项目属性! “项目属性”是一种“覆盖”属性表,仅适用于一个特定项目。 它位于物业经理列出的所有物业单之上。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.