如何为每个项目配置设置不同的项目依赖项?

时间:2009-10-05 09:34:02

标签: visual-studio solution vcproj

我希望拥有不同的项目依赖项,具体取决于我当前正在构建的项目配置。

例如,我不想在Release配置中构建和链接SomeTestLib.vcproj,但我想在Debug中构建并链接到它。

一种解决方案,即sorta的工作原理,是使用条件编译宏:

#ifdef DEBUG  
#pragma comment( lib, "SomeTestLib" )  
#endif

但在这种情况下,调试器和IntelliSense不适用于SomeTestLib 是否有我可以使用的.sln或.vcproj hack?
谢谢。

6 个答案:

答案 0 :(得分:7)

在搜索Google几天之后,我终于放弃了找到这个问题的解决方案并且让一个VS开发人员感到震惊,他给了我这个问题的解决方法(实际上,我自己尝试了很多不同的东西来找到这个)

显然,IDE不够智能,无法确定您是否在给定配置下禁用了特定库的构建,并且未将该项目的输出添加到依赖于它的项目的链接器命令行。我相信你已经意识到了这一点。

但是,由于它只是将库项目的输出行粘贴到依赖项目的命令行中,因此将输出行设置为“”将导致NOTHING被添加到依赖项目的链接器命令行中!

希望将来在Visual Studio中解决此问题。我保持乐观,因为它是我最喜欢的IDE,我总是对它支持的功能印象深刻。但是,我见过的一些VS帮助线程说这个bug是“按设计”的,所以也许他们不会修复它。但是,这似乎很容易做到。

无论如何,总结一下:

  • 在解决方案资源管理器中右键单击您的库项目,然后单击“属性”。
  • 切换到您的库项目未构建的“配置/平台”对。
  • 选择“配置属性 - >图书管理员 - >常规”。
  • 对于“输出文件”,键入“”(即打开的parens,space,close parens)。
  • 单击“确定”。

请注意,如果您构建或清除已禁用的库项目,此解决方法将为您提供错误。如果您只是构建解决方案,那么将禁用已禁用的配置,因此您不会收到错误。

希望这有帮助!

丹尼尔

答案 1 :(得分:3)

可以关闭依赖项目中的链接器/常规/链接库依赖项属性,并将库放在相关配置中的链接器输入中。

它使项目引用不那么有用,但是可行。

答案 2 :(得分:1)

在项目属性中将配置类型设置为Utility而不是application / library - >一般..

答案 3 :(得分:0)

在visual studio中,每个构建配置都会为项目保留自己的属性列表。只需将您的lib添加到您想要的任何构建配置。只是不要添加到“所有配置”

答案 4 :(得分:0)

右键单击您的解决方案并选择属性。解决方案属性页面将显示..

在右页中选择配置属性>>>配置

在这里,您可以通过选中标记为Build的复选框来选择Debug,Release和All构建类型的构建配置。

答案 5 :(得分:0)

在主项目中,转到配置属性 - >链接器 - >输入,在标题为“忽略特定库”的部分中添加您想要标记的库,例如:.lib。除了忽略不同的lib / dll之外,对其他配置再次执行此操作。

最后,如果您不希望每个项目构建两个配置,请右键单击解决方案 - >项目依赖关系 - > [选择主要/顶级项目] - >取消选中您不想构建/忽略的项目。

此方法的优点是,如果需要,您仍然可以手动构建每个项目,但可以切换配置并仅构建/使用所需的lib / dll。